Muchos desarrolladores que escriben aplicaciones con programación
orientada a objetos crean un archivo fuente PHP por cada definición
de clase. Una de las molestias más grandes es tener que escribir
una larga lista de includes necesarios al principio de cada script
(uno pra cada clase).
En PHP 5, esto ya no es necesario. Puede definir una función
__autoload la cual es llamada automáticamente en caso de que
intente usar una clase que no ha sido definida aún. Al llamar
esta función la ejecución del script da una última
oportunidad de cargar la clase antes de que PHP falle con un error.
Nota:
Las excepciones arrojadas en la función __autoload no pueden ser
capturadas en el bloque catch
y resultan en el despliegue de un error fatal.
Ejemplo 19-5. Ejemplo de auto carga
Este ejemplo intenta cargar las clases MyClass1
y MyClass2 de los archivos MyClass1.php
y MyClass2.php respectivamente.
<?php function __autoload($class_name) { require_once $class_name . '.php'; }
$obj = new MyClass1(); $obj2 = new MyClass2(); ?>
|
|