spl_autoload_register namespace instead funciona ejemplos como __autoload php autoload

php - instead - spl_autoload_register namespace



php spl_autoload_register vs__autoload? (2)

La documentación para "Clases de carga automática" dice:

spl_autoload_register () proporciona una alternativa más flexible para las clases de carga automática. Por este motivo, se desaconseja el uso de __autoload () y se puede dejar de utilizar o eliminar en el futuro.

La documentación para spl_autoload_register () lee:

Si debe haber varias funciones de carga automática, spl_autoload_register () lo permite. Crea efectivamente una cola de funciones de carga automática, y se ejecuta a través de cada una de ellas en el orden en que están definidas. Por el contrario, __autoload () solo se puede definir una vez.

Hola, ¿hay alguna diferencia al usar esta excepción que podemos usar nuestro propio nombre carga automática? ¿Hay alguna diferencia de rendimiento? ¿Cómo trabajan internamente?

Entre

function __autoload_libraries($class){ include_once ''lib.''.$class.''.php''; } spl_autoload_register(''__autoload_libraries'');

vs

function __autoload($class){ include_once ''lib.''.$class.''.php''; }


__autoload generalmente se considera obsoleto. Solo permite un único autocargador. En general, solo debe usar __autoload si está usando una versión de PHP sin soporte para spl_autload_register .

spl_autoload_register permite que se spl_autoload_register varios autocargadores que se ejecutarán sucesivamente hasta que se encuentre y cargue una clase / interfaz / rasgo correspondiente, o hasta que se hayan agotado todas las opciones de carga automática. Esto significa que si está utilizando un código de marco u otras bibliotecas de terceros que implementan sus propios cargadores automáticos, no tiene que preocuparse de que el suyo cause conflictos.

ACTUALIZAR:

__autoload ahora está oficialmente en desuso a partir de PHP 7.2.0, lo que significa que ahora está en el bloque de corte. Si desea que su código sea compatible con futuras versiones de PHP, definitivamente no debe usar __autoload