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

