PHP en la terminal: escribe utilidades CLI como un profesional

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

PHP no es solo web: por qué tu próxima herramienta CLI debería estar escrita en PHP



Cuando escuchamos «PHP», la primera asociación son sitios web, WordPress e infinitos echo en el navegador. Pero PHP es una verdadera navaja suiza para el desarrollador. Una de sus características más subestimadas es la capacidad de crear utilidades CLI en PHP completas. Sí, esos programas de consola que ayudan a automatizar tareas rutinarias, analizar logs, generar informes y hacer la vida del ingeniero DevOps un poco más fácil.



En este artículo no solo hablaremos de teoría. Tomaremos y escribiremos desde cero varias aplicaciones de consola en PHP. Aprenderás cómo procesar argumentos de línea de comandos, colorear la salida, mostrar barras de progreso e incluso crear menús interactivos. Al final del artículo tendrás una plantilla lista que podrás usar inmediatamente en tus proyectos.



¿Por qué PHP para CLI? 3 argumentos contundentes



Antes de sumergirnos en el código, analicemos por qué usar PHP para crear utilidades CLI. Después de todo, existen Python, Node.js, Go…



  • Ya sabes PHP. Si eres desarrollador web en PHP, no necesitas aprender una sintaxis nueva para escribir un script de respaldo de base de datos o despliegue.
  • Ecosistema unificado. Puedes usar las mismas bibliotecas (a través de Composer), los mismos ORM y los mismos motores de plantillas. ¿Quieres un script que genere un informe PDF desde la BD? Por supuesto.
  • Velocidad de desarrollo. Los scripts PHP se escriben muy rápido. Para utilidades simples es la opción ideal: no necesitas compilar, configurar el entorno, simplemente ejecutas y listo.


Por supuesto, para demonios de alta carga o utilidades de sistema complejas es mejor usar C o Rust. Pero para el 90% de las tareas cotidianas, PHP es perfecto.



Desde cero hasta tu primera utilidad CLI: ¡hola, mundo! en la terminal



Comencemos con lo más simple. Crea un archivo hello.php y escribe:



#!/usr/bin/env php<?php

echo "¡Hola, terminal!";


La primera línea es el shebang. Le dice al sistema que este archivo debe ejecutarse con PHP. Sin ella, tendrías que escribir php hello.php cada vez, pero con ella, simplemente ./hello.php.



No olvides darle permisos de ejecución al archivo:



chmod +x hello.php


Ahora ejecuta:



./hello.php


¡Felicidades! Acabas de crear tu primera utilidad CLI en PHP. Es increíblemente simple, ¿verdad?



Trabajando con argumentos: haciendo la utilidad útil



Cualquier programa de consola serio debe poder aceptar argumentos. PHP proporciona dos arrays superglobales para esto: $argv y $argc.



  • $argv — array de argumentos. El primer elemento es el nombre del script.
  • $argc — cantidad de argumentos.


Escribamos una calculadora simple: sumemos dos números pasados como argumentos.



Calculadora simple en PHP CLI



#!/usr/bin/env php<?php

if ($argc !== 3) { echo "Uso: {$argv[0]} <número1> <número2>"; exit(1);}

$a = (int)$argv[1];$b = (int)$argv[2];

echo "Suma: " . ($a + $b) . "";echo "Resta: " . ($a - $b) . "";echo "Producto: " . ($a * $b) . "";echo "Cociente: " . ($a / $b) . "";


Ejecutamos:



./calc.php 10 5


Salida:



Suma: 15Resta: 5Producto: 50Cociente: 2


Pero esto es demasiado primitivo. En proyectos reales se necesitan argumentos con nombre (flags), como en git commit -m "mensaje". Para esto, PHP tiene la función getopt().



Argumentos con nombre con getopt()



#!/usr/bin/env php<?php

$shortOptions = "u

Blogs

Book Recommendations