Usando ‘Hooks’ en CodeIgniter
Muchas veces nos encontraremos, al programar nuestras aplicaciones, que necesitamos realizar una tarea en todas las paginas por igual, en un mismo momento. Hay una solución para eso, muy muy mala, que es hacer un copy&paste del código en todas las paginas (si.. si.. quien no ha hecho eso alguna vez…).
Por suerte CodeIgniter nos trae de la mano una buena herramienta llamada ‘Hooks’ o ganchos, que simplemente nos permite hacer eso, ejecutar determinadas funciones en un determinado momento.
El “determinado momento”, básicamente puede ser:
- pre_system: al principio de la ejecución del sistema, sin haber cargado básicamente nada.
- pre_controller: ejecutar antes de cargar el controlador, una vez cargadas las librerías y todo el systema básico.
- post_controller_constructor: justo se ejecutar tras el constructor del controlador pero antes de cualquier función.
- post_controller: se ejecutará una vez lo haya hecho el controlador.
- display_override: esto es para sobrescribir la función que nos muestra la pagina finalizada en el navegador.
- cache_override: lo mismo pero para la función de cache, nos permite sobreescrivirla.
- scaffolding_override: para crear nuestro propio scaffolding.
- post_system: ejecutará el código al final de todos los procedimientos.
En la user_guide de Codeigniter podréis encontrar esta información más extendida.
Bien, para que quede más claro, vamos a ver un ejemplo. En este caso supondremos que estamos trabajando en una página web multilenguaje. Y queremos crear un ‘hook’ que nos lea una variable de sesión que contiene el idioma que hay seleccionada y con eso nos cargue el idioma especificado (para los que no sepáis como funciona la “language class”, echarle un vistazo en la guía).
Leer más…
