sala / console
Console commands for Sala Framework (make, migrate, db, serve)
Requires
- php: ^8.4
- illuminate/config: ^10.0|^11.0|^12.0
- illuminate/container: ^10.0|^11.0|^12.0
- illuminate/database: ^10.0|^11.0|^12.0
- illuminate/events: ^10.0|^11.0|^12.0
- illuminate/filesystem: ^10.0|^11.0|^12.0
- illuminate/support: ^10.0|^11.0|^12.0
- psy/psysh: ^0.12
- robmorgan/phinx: ^0.16
- symfony/console: ^7.0
- vlucas/phpdotenv: ^5.6
Requires (Dev)
- fakerphp/faker: ^1.21
- laravel/pint: ^1.0
- pestphp/pest: ^3.0
- phpstan/phpstan: ^2.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-10-16 00:17:21 UTC
README
Console commands for Sala Framework — make:*, migrate*, db:*, serve.
Instalação
composer require sala/console
Uso
O pacote expõe o binário console:
# Via vendor/bin php vendor/bin/console list # Ou se copiado para root do projeto (post-install) php console list
Comandos disponíveis
| Comando | Descrição |
|---|---|
serve |
Sobe dev server PHP + Vite (npm run dev) |
make:controller |
Cria Controller |
make:model |
Cria Model Eloquent |
make:service |
Cria Service |
make:middleware |
Cria Middleware |
make:repository |
Cria Repository |
make:view |
Cria View Blade |
make:migration |
Cria migration Phinx |
make:seed |
Cria seeder Phinx |
migrate |
Executa migrações pendentes (cria DB se necessário) |
rollback |
Reverte última migração |
status |
Estado das migrações |
breakpoint |
Breakpoint Phinx |
db:create |
Cria banco via PDO |
db:drop |
Remove banco via PDO |
db:export |
Exporta banco para SQL (sem mysqldump) |
seed:run |
Executa seeders |
tinker / shell |
Shell interativa (REPL) para explorar a aplicação e a base de dados |
stub:publish |
Copia os stubs do pacote para stubs/ do projeto (permite customizar) |
config:publish |
Copia config/console.php do pacote para config/ do projeto |
Tinker (tinker / shell)
Shell interativa (REPL) baseada no PsySH para explorar a aplicação, os modelos e a base de dados — ao estilo do Laravel Tinker.
# Abre a shell interativa php console tinker php console shell # alias # Executa código e sai php console tinker --execute='db()->table("users")->count()' php console tinker -e '$app->getName()' # Executa a partir de STDIN (não-interativo) php console tinker < script.php echo '1 + 1' | php console tinker # Valores no formato var_export php console tinker --raw-output -e '["a" => 1]'
No arranque ficam disponíveis:
$app— instância deSala\Console\ConsoleApplication$config— repositório de configuração (Illuminate), quando existedb()— helper que devolve a ligação Eloquent (Capsule)
Os modelos e coleções Eloquent são apresentados de forma legível (atributos
visíveis sem marcador, ocultos com #, relações e appends incluídos), através
dos casters registados automaticamente.
Opções: -e, --execute, --no-interactive e -r, --raw-output.
O histórico e a configuração do PsySH ficam guardados por projeto em
storage/psysh/ — adicione /storage/psysh/ ao .gitignore.
Configuração (tinker em config/console.php)
'tinker' => [ 'startup' => null, // mensagem mostrada ao abrir a shell 'includes' => [], // ficheiros PHP extra incluídos na shell 'variables' => [], // variáveis extra: nome => valor/classe/binding 'history' => 'storage/psysh', 'casters' => true, // casters Eloquent (Model/Collection) ],
Integração no projeto
O bin/console do pacote é universal: deteta automaticamente a raiz do
projeto a partir do vendor/autoload.php, carrega o .env e os config/*.php,
e inicializa o Eloquent quando existe configuração de base de dados. Não é
preciso escrever um wrapper manual.
Três formas de o executar:
# 1. Via Composer (recomendado — funciona sempre) php vendor/bin/console list # 2. Copiado para a raiz do projeto (ex.: via script post-install do Composer) php console list
Para gerar o console na raiz automaticamente, adicione ao composer.json do projeto:
"scripts": { "post-install-cmd": [ "@php -r \"copy('vendor/sala/console/bin/console', 'console'); chmod('console', 0755);\"" ], "post-update-cmd": [ "@php -r \"copy('vendor/sala/console/bin/console', 'console'); chmod('console', 0755);\"" ] }
O
consolegerado é um artefacto — adicione/consoleao.gitignore.
Comandos customizados do projeto podem ser registados no wrapper, se necessário:
$app = new \Sala\Console\ConsoleApplication('Sala Console', '1.0.0'); // ... setSharedServices / setConfig ... $app->addCommand(new \App\Console\Commands\MeuComando()); $app->run();
Publicar stubs e config
Para customizar os templates ou a configuração sem depender dos defaults do pacote:
php console config:publish # cria config/console.php no projeto (não sobrescreve) php console stub:publish # copia os stubs para stubs/ do projeto (não sobrescreve)
Os ficheiros já existentes nunca são sobrescritos, pelo que é seguro voltar a executar.
Stubs customizados
Crie stubs/{nome}.stub na raiz do projeto para sobrescrever os defaults do pacote.
Configuração (config/console.php)
return [ 'paths' => [ 'controllers' => 'app/Http/Controllers', 'models' => 'app/Infrastructure/Persistence/Eloquent', // ... ], 'namespaces' => [ 'controllers' => 'App\\Http\\Controllers', // ... ], 'suffixes' => [ 'controller' => 'Controller', 'model' => '', // ... ], ];
Requisitos
- PHP ^8.4
- Symfony Console ^7.0
- Phinx ^0.16
- PsySH ^0.12 (
tinker/shell) - Illuminate (Database, Container, Config, Filesystem, Events, Support) ^10|^11|^12
Licença
MIT