Cuando creamos un fichero fuente PHP para cada definición de clase y queremos evitar tener que incluir al comienzo de cada script todos los includes necesarios de las clases que usan, se puede definir una función __autoload(), que es automáticamente invocada en caso de que se esté intentando utilizar una clase que no ha sido definida. Esta función podríamos meterla en un fichero que se incluya siempre al principio de cada script y tendría, por ejemplo, esta definición:
<?php function __autoload($nombre_clase) { include 'dao/class.' . $nombre_clase . '.php'; } ?>Entonces, en lugar de tener un script así:
<?php require('dao/class.cliente.php'); require('dao/class.clientes.php'); require('dao/class.pedido.php'); require('dao/class.pedidos.php'); require('dao/class.producto.php'); require('dao/class.productos.php'); require('dao/class.almacen.php'); require('dao/class.almacenes.php'); $cliente = new Cliente(); $pedido = new Pedido($cliente); ... ?>Podemos tener:
<?php require('base/start.php'); $cliente = new Cliente(); $pedido = new Pedido($cliente); ... ?>
NOTA: A partir de PHP 5.1.2 se recomienda el uso de spl_autoload_register() como alternativa a __autoload() [php.net]