diciembre 10, 2013

Usar la instancia de Codeigniter desde nuestras propias clases automáticamente

Un inconveniente que tiene CodeIgniter es que no se puede acceder de manera tradicional a los recursos del framework desde nuestras propias clases, tal como lo haríamos desde un controlador o bien un modelo.

Generalmente tenemos que hacer algo como: $CI = &get_instance(); para después usar ese objeto en la forma: $CI->db->get(); lo cual pues no se ve tan bien, como cuando hacemos las llamadas al puro estilo de CodeIgniter.

Para resolver esto (si es que contamos con la versión de PHP 5.0 o superior),  podemos utilizar el método mágico __get() para poder incluir las funcionalidades de la instancia de CodeIgniter en nuestra propia clase de manera transparente, del siguiente modo:

Solo hay que agregar este método en nuestra clase y ya podremos hacer llamadas a las diferentes funciones de CodeIgniter de manera tradicional, como $this->load->view() ó $this->db->get()

Los métodos mágicos en PHP son una gran herramienta y te invito a que los descubras y te enteres de la clase de cosas que pueden hacer por ti... por algo son "mágicos" =:-)