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

phpspl_autoload_register(callable $autoload_function [, bool $throw = true [, bool $prepend = false ]]);

Exemple

Enregistrement simple d'une fonction d'autochargement :

php<?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<?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<?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