Code Igniter: llamar a un controlador desde consola o desde otro fichero.php
Si has trabajado con Code Igniter encontrarás este “truquillo” de mucha utilidad. Te permitirá llamar a un controlador desde consola o desde otro fichero PHP. Por ejemplo:
1) Supón que tienes una tarea (en un cron) que tiene que llamar a un controlador de tu aplicación Code Igniter. Supongamos que tienes un controlador que se llama ’saludar’ y quieres llamar a la función ‘decir_hola’ de ese controlador. No puedes hacer la llamada así:
php /var/www/saludar/decir_hola
ni:
php /var/www/index.php/saludar/decir_hola
(pruébalo)
2) También es posible que necesites recibir parámetros $_GET pero, por ejemplo, no sabes en el orden en el que te los van a enviar.
En ambos casos puedes crear un fichero llamado, por ejemplo, redirigir.php con el contenido siguiente:
<?php // Recoger parámetros o cualquier otra tarea previa que necesites antes de llamar al controlador ... // Fin de tareas previas $_SERVER['PATH_INFO'] = 'saludar/decir_hola'; require('index.php'); ?>
o incluso, podemos pasarle parámetros desde la consola:
<?php $_SERVER['PATH_INFO'] = $argv[1]; require('index.php'); ?>
(Si usas el fichero .htaccess no olvides añadir este fichero redirigir.php para que se pueda ejecutar).


