| Subcribe via RSS

Code Igniter: llamar a un controlador desde consola o desde otro fichero.php

Abril 30th, 2009 | No Comments » | Posted in code igniter, php, programacion

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).

Tags: , ,

Kohana, la ¿evolución? de Code Igniter

Agosto 14th, 2008 | No Comments » | Posted in php, programacion

Los que me conocéis ya sabéis que soy un enamorado de Code Igniter. Sin embargo, recientemente he descubierto Kohana, que es un fork de mi amado framework.

¿Cuál es la diferencia entre Code Igniter y Kohana? Entre otras tenemos estas:

- Principalmente que está llevado por una comunidad cuya principal prioridad es Kohana, al contrario que Ellislab (empresa creadora de Code Igniter) cuya prioridad es Expression Engine, su producto estrella. La principal ventaja es que las modificaciones y mejoras se aplican más rápidamente en Kohana.

- Kohana funciona sólo con PHP5, mientras Code Igniter funciona también con PHP4. Ya sé que PHP4 ya no tiene soporte pero existen todavía muchos servidores que aún no se actualizado (y lo que tardarán todavía).

- En Kohana se puede acceder a la variable $_GET a través de un array (en Code Igniter el array $_GET no “existe”).

- Kohana está totalmente orientada a objetos (incluso los helpers son clases).

- En Kohana han sacado el directorio “Application” del directorio “System” y lo han puesto en el raíz. Esto puede parecer una tontería, pero de esta forma tienes totalmente independiente tu aplicación de los ficheros del framework.

Ya estoy empezando a usar Kohana para algunos proyectos. Claro que, únicamente lo hago en aquellos que estoy seguro que no se alojarán en servidores con PHP4 :-P .

Tags: , , , ,