Enregistrer des chargeurs automatiques
Configurer spl_autoload_register et le chargement automatique fondé sur Composer.
Enregistrer des chargeurs automatiques est une leçon PHP Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage PHP Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours PHP Academy comprend 4 leçons au total.
spl_autoload_register
spl_autoload_register() enregistre une fonction de rappel que PHP appelle chaque fois qu’une classe non définie est utilisée. Plusieurs chargeurs automatiques s’exécutent dans l’ordre de leur enregistrement.
Chargeur automatique personnalisé de base
Un chargeur automatique minimal de style PSR-4 écrit manuellement :
<?php
spl_autoload_register(function (string $class): void {
$prefix = 'App\\';
$baseDir = __DIR__.'/src/';
if (!str_starts_with($class, $prefix)) return;
$rel = substr($class, strlen($prefix));
$file = $baseDir.str_replace('\\', '/', $rel).'.php';
if (file_exists($file)) require $file;
});Plusieurs chargeurs automatiques
Enregistrez un chargeur automatique par préfixe d’espace de noms afin que chacun ne gère que ses propres classes.
<?php
spl_autoload_register(fn($c) => loadFromSrc($c));
spl_autoload_register(fn($c) => loadFromLib($c));autoload.php de Composer
En pratique, vous n’écrivez presque jamais votre propre chargeur automatique. Composer en génère un qui couvre tous les paquets ainsi que vos correspondances PSR-4.
<?php
require __DIR__.'/vendor/autoload.php';dump-autoload
Après avoir ajouté de nouvelles classes ou modifié les paramètres de chargement automatique de composer.json, régénérez le chargeur automatique : composer dump-autoload.
Chargeur automatique optimisé
composer dump-autoload --optimize crée une table de classes statique, ce qui élimine les analyses du système de fichiers à l’exécution. Cette option est recommandée en production.
Chargement automatique des fichiers (fonctions globales)
Utilisez la clé files dans composer.json pour les fichiers d’aide contenant des fonctions globales. Ils sont toujours inclus.
// composer.json
{
"autoload": {
"files": ["src/helpers.php"]
}
}Ordre d’exécution des chargeurs automatiques
Les chargeurs automatiques sont appelés dans l’ordre de leur enregistrement. Si le premier ne trouve pas la classe, il retourne sans erreur et PHP essaie le suivant.
Déboguer les problèmes de chargement automatique
Causes courantes de l’erreur « Class not found » : dump-autoload manquant, casse incorrecte dans le nom du fichier ou de la classe, ou incohérence du préfixe d’espace de noms dans composer.json.
Performances de PSR-4 et de la table de classes
PSR-4 effectue des appels stat sur le système de fichiers. Une table de classes effectue une recherche dans une table de hachage, plus rapide, mais doit être régénérée chaque fois qu’une nouvelle classe est ajoutée.
Tester le chargement automatique
Vérifiez votre chargeur automatique :
<?php
require 'vendor/autoload.php';
$obj = new \App\Services\EmailService();
echo get_class($obj); // App\Services\EmailServiceRésumé
spl_autoload_register est à la base de tout le chargement automatique PHP. Composer prend en charge l’essentiel : exécutez simplement dump-autoload lorsque vous ajoutez de nouvelles classes.
Vérification rapide
Quelle commande régénère le chargeur automatique de Composer ?
Questions Fréquemment Posées
La leçon « Enregistrer des chargeurs automatiques » est-elle gratuite ?
Oui — le texte complet de « Enregistrer des chargeurs automatiques » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours PHP Academy, passe à CoddyKit PRO. Le cours PHP Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Enregistrer des chargeurs automatiques » ?
Configurer spl_autoload_register et le chargement automatique fondé sur Composer. Tu pratiques PHP Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer PHP Academy ?
Aucune expérience préalable n'est requise. PHP Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Enregistrer des chargeurs automatiques » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon PHP Academy ?
Oui. Chaque leçon PHP Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Déclarer et utiliser des espaces de noms
- Espaces de noms imbriqués et alias
- Norme de chargement automatique PSR-4
- Enregistrer des chargeurs automatiques