Comandos do console
Aprenda a criar seus próprios comandos de console personalizados.
Criar comandos
Para criar seu próprio comando, você pode usar closures, callables ou criar uma classe no Commands namespace e adicioná-la ao system/console.php, por exemplo:
use Inphinit\Experimental\Cli\Command;
$console->action('hello', function (Command $command, array $params, array $residual) {
echo 'Hello world!';
});
Em seguida, no terminal, na pasta raiz do aplicativo, você pode executar o comando:
./run hello
Se você estiver usando o Windows, ou se o run arquivo estiver definido como executável, o ./ prefixo não será necessário; basta usar o comando desta forma:
run hello
Comandos com controladores
Os comandos dão suporte aos controladores de forma semelhante às rotas, com a diferença de que as classes responsáveis pelos comandos devem ser adicionadas na pasta system/Commands/. Exemplo de uso:
system/Commands/Foo/Bar/SampleCommand.php
<?php
namespace Commands\Foo\Bar;
use Inphinit\Viewing\View;
use Inphinit\Experimental\Cli\Command;
class TestCommand
{
public function test(Command $command, array $params, array $residual)
{
$name = $command->getName();
$input = $params['text'];
echo "Input: '{$input}' from '{$name}' command.";
}
}
system/console.php
<?php
use Inphinit\Experimental\Cli\Command;
$console->action('test', 'TestCommand::test')
->setOption('text', 't', Command::ARG_REQUIRED, null, 'Define a text');
Em seguida, no terminal:
./run test -t "ping!"
Opções
Os comandos também aceitam opções no formato --long e opcionalmente -short, por exemplo:
use Inphinit\Experimental\Cli\Command;
$console->action('hello', function (Command $command, array $params, array $residual) {
var_dump($params);
})->setOption('name', 'n');
Você pode executar o comando:
./run hello --name "Ada"
Ou, abreviadamente:
./run hello -n "Ada"
As opções aceitam argumentos opcionais (padrão):
use Inphinit\Experimental\Cli\Command;
$command = $console->action(...);
$command->setOption('name', 'n', Command::ARG_OPTIONAL);
As opções aceitam argumentos obrigatórios:
use Inphinit\Experimental\Cli\Command;
$command = $console->action(...);
$command->setOption('name', 'n', Command::ARG_REQUIRED);
As opções suportadas podem ser usadas sem um valor definido desta forma:
use Inphinit\Experimental\Cli\Command;
$command = $console->action(...);
$command->setOption('reindex', null, Command::ARG_NO_VALUE);
O que lhe permite realizar:
./run hello --reindex
Se você tentar inserir um valor, receberá uma mensagem de erro:
./run hello --reindex "foobar"
Comandos padrão
| Comando | Descrição |
|---|---|
run app:down |
Ativar o modo de manutenção |
run app:up |
Desativar o modo de manutenção |
run env:boot |
Otimiza as .env variáveis de ambiente do arquivo, adicionando-as ao cache de inicialização. |
run env:source |
Desative o cache de variáveis .env, fazendo com que todas as requisições exijam que o aplicativo analise o arquivo. |
run pkg:up |
Atualiza as classes psr-4 para usar o inphinit-autoload. Geralmente, não é necessário executar este comando manualmente em projetos instalados via Composer, pois ele costuma ser executado automaticamente. |
run serve |
Inicia o servidor web integrado. |