Utilitários CLI em PHP: por que você ainda não criou sua própria ferramenta de console?
\n\nImagine: você está no terminal, executa um comando — e em segundos tem um relatório pronto, todas as imagens convertidas ou um projeto configurado em um novo servidor. Sem navegador, sem mouse, sem esforço extra. Parece mágica? Não, são apenas utilitários CLI em PHP.
\n\nMuitos desenvolvedores acham que PHP é só uma "linguagem web". Mas, na verdade, PHP é uma excelente ferramenta para criar aplicações de console. Ela possui suporte nativo a fluxos de entrada e saída, manipulação prática de argumentos e, claro, bibliotecas poderosas como Symfony Console. Neste artigo, vamos explorar como criar um script de console em PHP do zero — desde um simples echo até uma ferramenta completa com cores e barra de progresso.
\n\nSe você está cansado de tarefas repetitivas feitas manualmente, se quer automatizar a rotina e se sentir um verdadeiro hacker, está no lugar certo. Vamos nessa!
\n\nO que é um utilitário CLI e para que serve?
\n\nCLI (Command Line Interface) é um programa que roda no terminal. Ele recebe argumentos, executa ações e exibe resultados. Diferente de aplicações web, não há HTML, CSS ou JavaScript. Apenas código puro e o terminal.
\n\nPor que criar utilitários CLI em PHP? Veja alguns cenários:
\n\n- \n
- Migração de dados — transferir informações de CSV para um banco de dados. \n
- Geração de relatórios — coletar estatísticas e gerar PDF ou Excel. \n
- Automação de deploy — implantar um projeto no servidor com um único comando. \n
- Parsing e processamento de arquivos — conversão, compressão, renomeação. \n
- Tarefas CRON — operações regulares executadas em horários agendados. \n
E o melhor: desenvolver ferramentas de console em PHP não exige infraestrutura complexa. Basta um arquivo e algumas linhas de código.
\n\nComeçando: script CLI mínimo em PHP
\n\nAbra o terminal, crie um arquivo hello.php e escreva:
<?php\necho "Olá, terminal!\\n";\n\n\nExecute:
\n\nphp hello.php\n\n\nVocê verá:
\n\nOlá, terminal!\n\nParabéns! Você acabou de criar seu primeiro utilitário CLI em PHP. Mas vamos torná-lo útil. Adicione o processamento de argumentos da linha de comando.
\n\nTrabalhando com argumentos: $argv e $argc
\n\nO PHP oferece dois arrays superglobais para trabalhar com o console: $argv (lista de argumentos) e $argc (número de argumentos). O primeiro argumento (índice 0) é o nome do próprio script.
Exemplo:
\n\n<?php\nif ($argc < 2) {\n echo "Uso: php hello.php [nome]\\n";\n exit(1);\n}\n\n$name = $argv[1];\necho "Olá, $name!\\n";\n\n\nExecução:
\n\nphp hello.php João\n\n\nResultado:
\n\nOlá, João!\n\nJá é interessante. Mas para projetos sérios, essa abordagem é limitada. Precisamos de argumentos nomeados, flags, valores padrão. É aqui que a biblioteca Symfony Console entra em cena.
\n\nSymfony Console: base poderosa para utilitários CLI em PHP
\n\nSymfony Console é o padrão de facto para criar aplicações de console em PHP. Com ela, você pode adicionar facilmente:
\n\n- \n
- Argumentos e opções nomeadas \n
- Saída colorida \n
- Barras de progresso \n
- Validação de entrada \n
- Autoload de comandos \n
Instalação via Composer:
\n\ncomposer require symfony/console\n\n\nAgora, vamos criar um utilitário CLI em PHP completo — um gerador de senhas.
\n\nCriando um comando para gerar senhas
\n\nEstrutura do projeto