Fonction spl_autoload_register
La fonction spl_autoload_register enregistre une fonction donnée en tant qu'implémentation de la méthode de chargement automatique des classes. Lorsque PHP rencontre une classe non définie, il appelle séquentiellement toutes les fonctions d'autochargement enregistrées, en leur passant le nom de la classe. Le premier paramètre est une fonction de callback pour l'autochargement, le deuxième paramètre (optionnel) détermine s'il faut lancer une exception en cas d'erreur, le troisième paramètre (optionnel) détermine s'il faut ajouter la fonction au début de la file.
Syntaxe
spl_autoload_register(callable $autoload_function [, bool $throw = true [, bool $prepend = false ]]);
Exemple
Enregistrement simple d'une fonction d'autochargement :
<?php
function my_autoloader($class) {
include 'classes/' . $class . '.php';
}
spl_autoload_register('my_autoloader');
// Maintenant on peut créer des objets sans include explicite
$obj = new MyClass();
?>
Exemple
Utilisation d'une fonction anonyme pour l'autochargement :
<?php
spl_autoload_register(function ($class) {
include 'lib/' . str_replace('\\', '/', $class) . '.php';
});
$obj = new Some\Namespace\MyClass();
?>
Exemple
Enregistrement de plusieurs fonctions d'autochargement :
<?php
spl_autoload_register('autoloader1');
spl_autoload_register('autoloader2');
spl_autoload_register('autoloader3', true, true); // Ajouter au début de la file
// PHP appellera les fonctions dans l'ordre : autoloader3, autoloader1, autoloader2
$obj = new MyClass();
?>
Voir aussi
-
la fonction spl_autoload_functions,
qui retourne les autochargeurs -
la fonction spl_autoload_unregister,
qui supprime un autochargeur -
la fonction class_exists,
qui vérifie une classe