0Pricing
PHP Academy · Aula

Componente Console: comandos CLI

Crie ferramentas interativas CLI usando classes Command do Symfony Console.

Componente Console: comandos CLI é uma aula grátis de PHP Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de PHP Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de PHP Academy inclui 4 aulas no total.

O que é o componente Console do Symfony?

Symfony Console permite criar aplicações CLI estruturadas e testáveis em PHP, com opções, argumentos, barras de progresso e saída colorida.

Instalando

Instale o componente.

$ composer require symfony/console

Criando um comando

Estenda Command e substitua configure() e execute().

<?php
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;

class GreetCommand extends Command
{
    protected static string $defaultName = "app:greet";

    protected function configure(): void
    {
        $this->setDescription("Greet a user")
             ->addArgument("name", \InputArgument::REQUIRED, "Name to greet")
             ->addOption("uppercase", "u", \InputOption::VALUE_NONE, "Uppercase output");
    }

    protected function execute(InputInterface $input, OutputInterface $output): int
    {
        $name = $input->getArgument("name");
        if ($input->getOption("uppercase")) $name = strtoupper($name);
        $output->writeln("Hello, $name!");
        return Command::SUCCESS;
    }
}

Configurando a aplicação

Registre comandos em uma Application e execute-a.

<?php
use Symfony\Component\Console\Application;

$app = new Application("MyApp", "1.0.0");
$app->add(new GreetCommand());
$app->run();

Argumentos e opções

Os argumentos são posicionais (obrigatórios ou opcionais). As opções são sinalizadores nomeados (--name=value ou -n value).

<?php
$this->addArgument("file",  InputArgument::REQUIRED)
     ->addArgument("output", InputArgument::OPTIONAL, "Output file", "out.txt")
     ->addOption("verbose", "v",  InputOption::VALUE_NONE, "Verbose output")
     ->addOption("format",  "f",  InputOption::VALUE_REQUIRED, "Output format", "json");

Auxiliares de saída

Formate a saída com métodos auxiliares.

<?php
$output->writeln("<info>Success!</info>");
$output->writeln("<error>Error occurred</error>");
$output->writeln("<comment>Processing...</comment>");

ProgressBar

Exiba uma barra de progresso para tarefas demoradas.

<?php
use Symfony\Component\Console\Helper\ProgressBar;

$bar = new ProgressBar($output, count($items));
$bar->start();
foreach ($items as $item) {
    processItem($item);
    $bar->advance();
}
$bar->finish();

Auxiliar de tabelas

Exiba dados tabulares no terminal.

<?php
use Symfony\Component\Console\Helper\Table;

$table = new Table($output);
$table->setHeaders(["ID", "Name", "Email"])
      ->setRows($userData)
      ->render();

Auxiliar de perguntas

Solicite a entrada do usuário de forma interativa.

<?php
use Symfony\Component\Console\Question\Question;
$helper   = $this->getHelper("question");
$question = new Question("Enter database password: ");
$question->setHidden(true);
$password = $helper->ask($input, $output, $question);

Códigos de retorno

Retorne Command::SUCCESS (0), Command::FAILURE (1) ou Command::INVALID (2) a partir de execute(). Os sistemas de CI usam esses códigos.

No Laravel

Os comandos Artisan do Laravel estendem Illuminate\Console\Command e usam as propriedades $signature e $description em vez de configure().

Resumo

Crie comandos estendendo Command. Defina argumentos e opções em configure(). Execute a lógica em execute(). Use auxiliares para barras de progresso, tabelas e solicitações ao usuário.

Verificação rápida

Qual número inteiro um comando bem-sucedido deve retornar a partir de execute()?

Perguntas Frequentes

A aula “Componente Console: comandos CLI” é grátis?

Sim — o texto completo de “Componente Console: comandos CLI” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de PHP Academy, atualize para CoddyKit PRO. O curso de PHP Academy inclui 4 aulas no total.

O que vou aprender em “Componente Console: comandos CLI”?

Crie ferramentas interativas CLI usando classes Command do Symfony Console. Você pratica PHP Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar PHP Academy?

Nenhuma experiência prévia é necessária. PHP Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Componente Console: comandos CLI”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de PHP Academy?

Sim. Cada aula de PHP Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. HttpFoundation: solicitação e resposta
  2. Contêiner de DependencyInjection
  3. EventDispatcher: eventos desacoplados
  4. Componente Console: comandos CLI
← Voltar para PHP Academy