Sunday, February 14, 2010

Usa __autoload y ahorate código y tiempo

Reconozco que no uso todas las ayudas que presta PHP, pero ahora estoy desarrollando un sistema más o menos complejo y he tenido que recurrir bastante a este tipo de funciones y métodos mágicos de PHP.

Bueno con __autoload no veía el uso, pero al trabajar con POO el uso de include se multiplica bastante, es por eso que preferí usarlo en vez de seguir ignorándolo. El problema era que tengo dos tipos de clases que incluir: los modelos y las librerías, y luego de pensar cree este pequeño script para facilitar el trabajo. Hace la inclusión dependiendo del nombre de la clase, para asignarle la ruta correspondiente:


#Lo uso para noFramework_MVC.
Si no usas este framework puedes utilizar directamente un include.

/**
* Carga automaticamente archivos de clases Modelo[...] y
* clases en lib
* @param string $clase
*/
function __autoload($clase){
//nombre de clases que empiezan con Modelo[nombredelaclase]
if(ereg("^Modelo", $clase)){
Core::cargarClase("app_modelos_$clase");
}
else{
Core::cargarClase("lib_$clase");
}
}

Más info acerca de __autoload

Espero sirva de ejemplo si desean implementar esta útil función.

No comments: