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:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
public function __get($attr) { | |
if (isset(get_instance()->$attr)) { | |
return get_instance()->$attr; | |
} | |
} |
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" =:-)
:o Muy bueno Carlos como siempre Felicidades he aprendido mucho contigo (y) saludos
ResponderBorrar