lunes, 18 de agosto de 2014

Codeigniter - Ejecución por consola (CLI)

Me gustaría dedicar un post a este tema, ya que considero interesante ejecutar códigos PHP por consola de comandos, ya que nos puede llegar a servir para generar tareas automatizadas como por ejemplo, la generación de ficheros xml, para capturar estadísticas de datos para alimentar otra aplicación, o simplemente ejecutar códigos de saneamientos de bases de datos, envío de emails.

Pues todo esto es más sencillo de lo que parece, ya que Codeigniter facilita las cosas en ese sentido.

Como ejecutar un controlador creado en Codeigniter

Vamos a poner un ejemplo sencillo se controlador para que veáis la utilización en consola, el código que ejecute cada controlador puede ser el que queráis, ya que no deja de ser código PHP.


<?php
class Cli extends CI_Controller {

 public function message($to = 'World')
 {
  echo "Hello {$to}!".PHP_EOL;
 }
}
?>

Este ejemplo es un ejemplo sencillo ya que simplemente imprime por pantalla el texto indicado por parámetro.

Para ejecutar este controlador por linea de comandos, o cualquier otro que deseemos ejecutar, siempre tendremos que ir al path donde está ubicado nuestro framework.

cd /path/to/project

Una vez estamos dentro de nuestro proyecto donde podremos ver las carpetes "application", "system", pero sobretodo nuestro fichero index.php, deberemos de escribir por consola el siguiente comando para ejecutar el código


php index.php cli message

Dónde index.php es el fichero por donde podremos cargar el framework de Codeigniter, este fichero puede llamarse de cualquier otra manera, pero indico index.php, ya que es el que viene por defecto en Codeigniter.

El parámetro cli, es el nombre del controlador que queremos ejecutar.
El parámetro message es la función del controlador que queremos ejecutar.

Al no pasarle ningún parámetro el resultado de ejecutar el anterior comando es el siguiente:

Hello World!

Ya que como no se le pasa ningún parámetro a la función, coge el parámetro indicado por defecto.

Si quisiéramos pasar un parámetro a la función lo haríamos de la siguiente manera:


php index.php cli message "Daycry"

En este caso imprimiría la cadena "Hello Daycry".


No hay comentarios:

Publicar un comentario