En php5 si se define una función __autoload, ésta se llamará cada vez que se intente acceder a una clase que no exista. Tanto a un método estático como a la creación de un nuevo objeto de ese tipo.
Ésto nos permite cargar código implícitamente y olvidarnos de incluir dependencias continuamente y permitiéndonos hacer algunas cosas mas lightweight sin tener que cargar cosas que no nos interesan.
Aunque nos obliga a usar clases.
Para agrupar funciones útiles que usemos comúnmente se puede hacer una clase "util" y luego métodos estáticos. Por ejemplo, yo suelo usar muy amenudo una función que llamo print_r_pre que se encarga de hacer lo mismo que un print_r, pero para que se vea correctamente en la web (usando <pre> y htmlspecialchars). Pues bien, me podría hacer una clase "util" con la función ahí:
class util {
static function print_r_pre($v) {
echo '<>' . htmlspecialchars(print_r($v, true)) . '< /pre>';
}
}Lo metería, por ejemplo, en un fichero llamado util.php en una carpeta creada para usar con la característica __autoload. Por ejemplo: /core/classes/util.phpY luego en un fichero que sí que debería cargar cada vez algo tipo esto (suponiendo que el fichero que inclue este código esté en /core/):
function __autoload($class) {
if (!file_exists($file = dirname(__FILE__) . '/classes/' . $class . '.php')) return;
require_once($file);
}Conclusión:
Si estás usando php5 y quieres ahorrarte mogollón de requiere_once. Las soluciones __autoload son para tí.


0 comentarios:
Publicar un comentario en la entrada