Frameworks CLI para PHP: revisión completa y comparación de las mejores herramientas

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Qué es un framework CLI para PHP y para qué sirve?



Un framework CLI (Command Line Interface) para PHP es una herramienta que simplifica la creación de aplicaciones y scripts de consola. En lugar de analizar manualmente los argumentos $argv y gestionar la entrada/salida, obtienes una arquitectura lista con soporte para comandos, opciones, salida de colores, barras de progreso e incluso menús interactivos.



En el desarrollo moderno con PHP, los frameworks CLI se utilizan en todas partes:

  • Automatización de tareas (migraciones de BD, caché, despliegue)
  • Generación de código (scaffolding)
  • Scripts CRON y procesadores en segundo plano
  • Herramientas DevOps y CI/CD


Veamos las cinco soluciones más populares que puedes usar en pythonlib.ru.



1. Symfony Console — el estándar de la industria



Symfony Console es el framework CLI para PHP más maduro y popular. Se utiliza en Laravel Artisan, Doctrine, Composer y cientos de otros proyectos.



Instalación

composer require symfony/console


Ejemplo: aplicación simple "Hola Mundo"

// hello.phprequire __DIR__ . '/vendor/autoload.php';

use Symfony\\Component\\Console\\Application;use Symfony\\Component\\Console\\Command\\Command;use Symfony\\Component\\Console\\Input\\InputInterface;use Symfony\\Component\\Console\\Output\\OutputInterface;

class HelloCommand extends Command{ protected static $defaultName = 'app:hello';

protected function configure(): void { $this->setDescription('Saludo al usuario'); }

protected function execute(InputInterface $input, OutputInterface $output): int { $output->writeln('<info>¡Hola, mundo!</info>'); return Command::SUCCESS; }}

$application = new Application();$application->add(new HelloCommand());$application->run();


Características clave

  • Generación automática de ayuda (--help)
  • Soporte para opciones y argumentos con validación
  • Salida de colores mediante estilos (info, error, comment)
  • Barras de progreso, tablas, preguntas
  • Pruebas de comandos a través de CommandTester


2. Laravel Zero — micro-framework basado en Laravel



Laravel Zero es una versión ligera de Laravel, optimizada para CLI. Es ideal si estás acostumbrado al ecosistema de Laravel pero no quieres arrastrar todo el framework.



Instalación

composer create-project laravel-zero/laravel-zero my-cli-app


Ejemplo: comando con argumentos

// app/Commands/GreetCommand.phpnamespace App\\Commands;

use LaravelZero\\Framework\\Commands\\Command;

class GreetCommand extends Command{ protected $signature = 'greet {name : Nombre del usuario} {--yell : ¿Gritar?}'; protected $description = 'Saludo con nombre';

public function handle(): int { $name = $this->argument('name'); $message = "¡Hola, $name!"; if ($this->option('yell')) { $message = strtoupper($message); } $this->info($message); return self::SUCCESS; }}


¿Qué incluye?

  • Eloquent ORM (opcional)
  • Comandos estilo Artisan
  • Soporte para colas y tareas
  • Migraciones y seeding para BD
  • Compilación integrada en archivo PHAR


3. Minicli — minimalista y rápido



Minicli es un framework CLI ligero sin dependencias. Pesa menos de 100 KB y es perfecto para microservicios y utilidades simples.



Instalación

composer require minicli/minicli


Ejemplo: encuesta interactiva

// app.phprequire __DIR__ . '/vendor/autoload.ph                    

Recommendations