Autocarga de clases
Muchos desarrolladores que escriben aplicaciones orientadas a objetos
crean un fichero fuente por definición de clase. Uno de los mayores inconvenientes
de este método es tener que escribir una larga lista de inclusiones de
ficheros de clases al inicio de cada script: una inclusión por clase.
La función spl_autoload_register registra un número cualquiera de
cargadores automáticos, lo que permite a las clases y a las interfaces ser
automáticamente cargadas si no están definidas actualmente.
Al registrar autocargadores, PHP da una última oportunidad de incluir una
definición de clase o interfaz, antes de que PHP falle con un error.
Cualquier construcción similar a las clases puede ser autocargada de la
misma manera. Esto incluye las clases, interfaces, traits y enumeraciones.
Anterior a PHP 8.0.0, era posible utilizar __autoload
para autocargar las clases y las interfaces. Sin embargo, es una alternativa
menos flexible a spl_autoload_register y
__autoload está obsoleto a partir de PHP 7.2.0,
y eliminado a partir de PHP 8.0.0.
spl_autoload_register puede ser llamada varias veces
para registrar varios autocargadores. Lanzar una excepción desde una
función de autocarga, interrumpirá este proceso y no permitirá que las
funciones de autocarga siguientes sean ejecutadas. Por esta razón,
lanzar excepciones desde una función de autocarga es fuertemente
desaconsejado.
Ejemplo de autocarga
Este ejemplo intenta cargar las clases MiClase1
y MiClase2, respectivamente desde los ficheros
MiClase1.php y
MiClase2.php.
]]>
Otro ejemplo de autocarga
Este ejemplo intenta cargar la interfaz ITest.
]]>
Uso del autoloader de Composer
&link.composer; genera un fichero vendor/autoload.php
configurado para cargar automáticamente los paquetes gestionados por Composer.
Al incluir este fichero, estos paquetes pueden ser utilizados sin trabajo
adicional.
", $uuid->toString(), "\n";
?>
]]>
&reftitle.seealso;
unserializeunserialize_callback_funcunserialize_max_depthspl_autoload_registerspl_autoload__autoload