Contenido

¿__autoload() en WordPress?

31 Mar

+ 3

En Real Ultimate Waffe, comentan la idea de incluir la propiedad __autoload() de PHP5 a la lógica de WordPress. Y la idea es muy interesante.

__autoload() es una funcionalidad de PHP5 que nos permite ejecutar código al llamar cualquier Clase que no esté declarada, uniendo esto a que generalmente se usa un fichero para declarar una clase podemos hacer cosas como:

<?php
function __autoload($class_name) {
    require_once $class_name . '.php';
}

$obj  = new MyClass1();
$obj2 = new MyClass2(); 
?>

En el ejemplo, vemos que cargamos el fichero $class_name.php desde la función __autoload() que será llamada a la hora de instanciar cada una de las clases. En este ejemplo, llamará a los fichero MyClass1.php y MyClass2.php.

En WordPress se podría usar esta característica para evitar la carga innecesaria de ficheros que no llegamos a usar. De esta forma además de optimizar las llamadas a disco, evitamos cargar innecesariamente objetos en memoria que no vamos a usar.

Lástima que para poder usarlo debamos replantear parte de la estructura base de WordPress, pero no descarto que en una futura versión veamos esta mejora que aportará muchos beneficios en cuanto a recursos se refiere.

  • Muy interesante, espero lo tomen en consideración para el futuro.

  • Hola.

    Llegué a usar una vez la función __autoload de php. Funciona cuando usas un fichero base en la lógica de la aplicacion.

    Lo dejé de usar porque si por require se termina combinando archivos que tiene una definicion de __autoload, Te da un error de función sobreescrita y es todo un show.

    Yo vengo del mundo de OOP, así que veo mi lista de requires como los import de clases y no pienso en que sea mucho texto 😀 me ayuda a saber que codigo ocupo en qué scripts

  • Esta buena la idea, me parece que ese tipo de solucion tambien podria ser un patron de diseno que se podria usar no solo para wordpress pero otros projectos tambien. mmm… voy a investigar sobre eso. No estaria mal crear una solucion.

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.