Autoload :
Lorqu'on a mis en place des namespace on peut mettre en place un autoloder de classes. Le chargement des classes utiles se fera à travers l'utilisation des "use", de l'autoloader et des classes instanciées dans le fichier, de sorte que dans le fichier qui instancie un objet d'une classe, alors, le "require_once" sera automatiquement déclenché par l'autoloader, on a donc uniquement besoin de déclarer l'autoloader et de spécifier avec un "use" toutes les classes que l'on utilise.
Exemple :
Création du fichier "Autoloader.php" :
On crée un fichier "Autoload.php" à la racine du dossier "classes" dans lequel on déclare l'autoloader.
Mise en place du code de l'autoloader :
On met en place le code de l'autoloader, qui va permettre de charger les classes utiles à l'instanciation d'un objet.
Dans le code ci-dessus, la fonction spl_autoload_register en PHP est utilisée pour enregistrer une fonction d'autoload personnalisée, ce qui permet de charger automatiquement les classes qui ne sont pas encore chargées lorsque vous essayez de les utiliser.
On peut noter que la classe de l'autoloader, comme elle est à la racine du dossier "classes", est porteuse du namespace "App\classes".
Utilisation de l'autoloader :
On va utiliser l'autoloader pour charger la classe "Produit" et on va, du coup, enlever le "require_once" dédié à cette classe. La méthode autoload va écrire via un "echo" le nom de la classe recherchée.
Dans le code ci-dessus, la méthode statique "register" enregistre la méthode statique "autoload" comme participant du principe de chargement automatique des classes instanciées.
On obtient le résultat dans la page web :
On peut maintenant aller un peu plus loin, nous allons modifier le code de la méthode "autoload" de la classe "Autoloader", pour qu'elle puisse plutôt que de faire l'"echo" du namespace, prendre en charge de la classe voulue.