Ejecutar CodeIgniter desde línea de comandos

Ejecutar script PHP desde consola se vuelve útil cuando queremos programar la ejecución de un script en Cron (sin pasar por CURL) o necesitamos lanzar script intensivos saltandonos algunas limitaciones como el tiempo máximo de ejecución.

El primer paso sera crear un archivo php en el mismo directorio que nuestro index.php con el siguiente contenido

   if (isset($_SERVER['REMOTE_ADDR'])) {
       die('Command Line Only!');
   }  

   set_time_limit(0);  

   $_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI'] = $argv[1];
   require dirname(__FILE__) . '/index.php';

Si estamos trabajando sobre un servidor linux tambien podemos hacer que el script sea auto-ejecutable añadiendo #!/usr/bin/php en la primera línea del fichero.

El siguiente paso es crear un controlador en codeigniter y asegurarnos de que solo es ejecutado desde línea de comandos:

   class Hello extends Controller {  

       function __construct() {
           if (isset($_SERVER['REMOTE_ADDR'])) {
               die('Command Line Only!');
           }
           parent::Controller();
       }  

      // ...
  }

A partir de aquí solo queda ejecutarlo desde línea de comandos. En windows sería algo así:

c:\wamp\bin\php\php5.3.0\php.exe \directorio\cli.php "clase/funcion/parámetro"

Y en Linux:

php /directorio/cli.php "clase/funcion/parámetro"

versión auto-ejecutable en Linux:

/directorio/cli.php "clase/funcion/parámetro"

Vía tutsplus

Compartir:
  • Facebook
  • Twitter
  • Meneame
  • Google Bookmarks
  • del.icio.us
  • BarraPunto
  • Bitacoras.com
  • Netvibes
  • MySpace
  • Technorati
  • email
  • PDF

Ningun post realacionado

Deja un comentario

You must be logged in to post a comment.