Comandos en Yii: Creación y Ejecución de Controladores en Terminal
Clase 10 de 35 • Curso de Desarrollo Web con PHP y Yii2
Resumen
¿Cómo usar comandos en Yii?
Al construir aplicaciones web complejas, es vital estar familiarizado con la configuración y operación de diferentes herramientas que un framework como Yii ofrece. Tanto los comandos de línea de comando como los controladores son esenciales para manipular y gestionar recursos del sistema de manera eficiente. Aquí, exploraremos en detalle cómo utilizar comandos dentro del framework Yii, brindándote la capacidad de automatizar tareas desde la terminal.
¿Qué es un command en Yii?
En Yii, un command es esencialmente un controlador diseñado para ser ejecutado desde la línea de comandos en lugar del ambiente web. Esto es útil para realizar operaciones que no necesitan una interfaz de usuario, como tareas de mantenimiento o automatización. Por defecto, la estructura es similar a la de un controlador web estándar, pero orientada a ejecutar funciones desde la terminal.
¿Cómo ejecutar comandos básicos?
Al instalar Yii, se proporciona un hello-controller
que sirve como ejemplo básico de un command. Este controlador imprime un mensaje simple cuando se invoca desde la terminal. Aquí un ejemplo de cómo ejecutarlo:
php yii hello
Este comando imprimirá "Hello, world!" si no se proporciona otro mensaje. Puedes pasarle un parámetro para personalizar la salida.
Creando un nuevo controlador de comandos
El siguiente paso es crear tu propio controlador de comandos. Sigue estas instrucciones para crear un controlador simple que efectúe una suma de dos números dados:
-
Crea el archivo: En la carpeta de
commands
, crea un archivo llamadoplatzi-controller.php
. -
Define la clase:
namespace app\commands;
use yii\console\Controller;
use yii\console\ExitCode;
class PlatziController extends Controller
{
public function actionSuma($a, $b = 17)
{
$result = $a + $b;
printf("El resultado es: %.2f\n", $result);
return ExitCode::OK;
}
}
Este sencillo controlador suma dos números y devuelve el resultado. Además, si el segundo número no se proporciona, usa 17 como valor por defecto.
Ejecutando y probando comandos
Para ver el nuevo controlador en acción, ejecuta el siguiente comando en tu terminal:
php yii platzi/suma 10 5
Este comando sumará 10 y 5, devolviendo "El resultado es: 15.00".
Si omites el segundo número, así:
php yii platzi/suma 10
Se usará 17 como predeterminado, dando como resultado "El resultado es: 27.00".
Documentación básica en PHP
No olvides documentar tus comandos utilizando el sistema de documentación de PHP. Esto no solo aclara el propósito de tu código, sino que también es una buena práctica para proyectos a largo plazo. Puedes agregar comentarios como los siguientes a tus métodos:
/**
* Suma los valores de los dos parámetros.
* @param int $a Primer valor a sumar.
* @param int|null $b Segundo valor a sumar (opcional).
* @return int El resultado de la suma.
*/
¿Cómo manejar archivos CSV?
Vamos a dar un paso más allá creando una acción que lea un archivo CSV y lo imprima línea por línea. Uno de los usos potenciales de los comandos es gestionar grandes cantidades de datos de forma eficiente.
- Crea la función:
public function actionBooks($file)
{
$handle = fopen($file, "r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
print_r($data);
}
fclose($handle);
return ExitCode::OK;
}
- Ejecuta el comando:
php yii platzi/books path/to/yourfile.csv
Esta acción abrirá el archivo CSV especificado, leyéndolo línea por línea e imprimiendo cada entrada como un array.
Al aprender a usar comandos en Yii, puedes transformar potenciales tareas diarias en procesos automatizados eficientes, liberando tiempo para centrarte en la lógica más importante de tus aplicaciones. ¡Sigue explorando y construyendo!