CLI en PHP: crea herramientas de consola desde cero

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

CLI en PHP: ¿por qué aún no has creado tu propia herramienta de consola?

\n\n

Imagina que estás en la terminal, ejecutas un solo comando y en cuestión de segundos tienes un informe listo, todas las imágenes convertidas o un proyecto configurado en un nuevo servidor. Sin navegador, sin ratón, sin movimientos innecesarios. ¿Suena a magia? No, es simplemente CLI en PHP.

\n\n

Muchos desarrolladores creen que PHP es solo un «lenguaje web». Pero la realidad es que PHP es una excelente herramienta para crear aplicaciones de consola. Cuenta con soporte nativo para flujos de entrada y salida, manejo sencillo de argumentos y, por supuesto, potentes librerías como Symfony Console. En este artículo, veremos cómo crear un script de consola en PHP desde cero, desde un simple echo hasta una herramienta completa con colores y barra de progreso.

\n\n

Si estás cansado de hacer tareas repetitivas a mano, si quieres automatizar tu rutina y sentirte como un verdadero hacker, has llegado al lugar indicado. ¡Allá vamos!

\n\n

¿Qué es una utilidad CLI y para qué sirve?

\n\n

CLI (Command Line Interface) es un programa que funciona en la línea de comandos. Recibe argumentos, ejecuta acciones y muestra resultados. A diferencia de las aplicaciones web, aquí no hay HTML, CSS ni JavaScript. Solo código puro y la terminal.

\n\n

¿Por qué crear CLI en PHP? Estos son algunos casos de uso:

\n\n
    \n
  • Migraciones de datos — transferir información de un CSV a una base de datos.
  • \n
  • Generación de informes — recopilar estadísticas y generar PDF o Excel.
  • \n
  • Automatización de despliegues — configurar un proyecto en un servidor con un solo comando.
  • \n
  • Procesamiento y análisis de archivos — conversión, compresión, renombrado.
  • \n
  • Tareas CRON — operaciones periódicas que se ejecutan según un horario.
  • \n
\n\n

Y lo mejor de todo es que el desarrollo de herramientas de consola en PHP no requiere una infraestructura compleja. Con un solo archivo y unas pocas líneas de código es suficiente.

\n\n

Empezando: el script CLI mínimo en PHP

\n\n

Abre la terminal, crea un archivo hola.php y escribe:

\n\n
<?php\necho "¡Hola, terminal!\\n";\n
\n\n

Ejecútalo:

\n\n
php hola.php\n
\n\n

Verás:

\n\n
¡Hola, terminal!
\n\n

¡Felicidades! Acabas de escribir tu primera utilidad CLI en PHP. Pero hagámosla más útil. Añadamos manejo de argumentos de línea de comandos.

\n\n

Trabajando con argumentos: $argv y $argc

\n\n

PHP proporciona dos arrays superglobales para trabajar con la consola: $argv (lista de argumentos) y $argc (número de argumentos). El primer argumento (índice 0) es el nombre del propio script.

\n\n

Ejemplo:

\n\n
<?php\nif ($argc < 2) {\n    echo "Uso: php hola.php [nombre]\\n";\n    exit(1);\n}\n\n$nombre = $argv[1];\necho "¡Hola, $nombre!\\n";\n
\n\n

Ejecución:

\n\n
php hola.php Carlos\n
\n\n

Resultado:

\n\n
¡Hola, Carlos!
\n\n

Ya es más interesante. Pero para proyectos serios, este enfoque no es práctico. Necesitamos argumentos con nombre, banderas, valores por defecto. Aquí es donde entra en juego la librería Symfony Console.

\n\n

Symfony Console: la base sólida para CLI en PHP

\n\n

Symfony Console es el estándar de facto para crear aplicaciones de consola en PHP. Con ella, puedes añadir fácilmente:

\n\n
    \n
  • Argumentos y opciones con nombre
  • \n
  • Salida con colores
  • \n
  • Barras de progreso
  • \n
  • Validación de entrada
  • \n
  • Autocarga de comandos
  • \n
\n\n

Instalación con Composer:

\n\n
composer require symfony/console\n
\n\n

Ahora crearemos una utilidad CLI en PHP completa: un generador de contraseñas.

\n\n

Escribiendo un comando para generar contraseñas

\n\n

Estructura del proyecto

Blogs

Book Recommendations