Afin d’éviter de devoir maintenir et faire grossir un fichier dont le seul but est d’inclure toutes les classes d’un projet, il est possible depuis PHP 5 de mettre en place un autoloader.
La fonction spl_autoload_register() permet d’enregistrer plusieurs autoloader afin de permettre aux classes et interfaces d’être automatiquement chargées lorsqu’elles sont utiles et qu’elles n’ont pas déjà été chargées. La fonction __autoload() existe également mais spl_autoload_register() a pour avantage de pouvoir gérer plusieurs autolaoder, ce qui s’avère très utile lors de l’usage de bibliothèques tierces.
Exemple d’autoloader en faisant appel à une fonction préalablement définie
function my_autoloader($class) {
include 'classes/' . $class . '.class.php';
}
spl_autoload_register('my_autoloader');Exemple d’autoloader en utilisant une fonction anonyme (à partir de PHP 5.3.0)
spl_autoload_register(function ($class) {
include 'classes/' . $class . '.class.php';