Autoloader : Auto-chargement des classes PHP

par

dans

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';