PSR 04 - Autoloading Standard
1 h
Niveau 4
Ce PSR décrit une spécification pour l'auto-chargement de classes à partir de chemins de fichiers. Il est entièrement interopérable et peut être utilisé en complément de toute autre spécification d'auto-chargement, y compris le PSR-0. Ce PSR décrit également où placer les fichiers qui seront autochargés conformément à la spécification.
Caractéristiques
- Le terme "classe" fait référence aux classes, interfaces, traits et autres structures similaires.
- Un nom de classe doit avoir la forme suivante :
\<NamespaceName>(\<SubNamespaceNames>)*\<ClassName>
- Le nom de classe DOIT avoir un dossier (namespace) de premier niveau, aussi appelé "vendor namespace".
- Le nom de classe PEUT avoir un ou plusieurs sous-dossiers (subnamespace).
- Le nom de classe DOIT avoir un dossier de classe terminale.
- Les traits de soulignement n'ont aucune signification particulière dans aucune partie du nom de classe.
- Les caractères alphabétiques dans le nom de classe PEUVENT être une combinaison de minuscules et de majuscules.
- Tous les noms de classe DOIVENT être référencés en tenant compte de la sensibilité de la casse.
- Lors du chargement d'un fichier qui correspond à un nom de classe...
- Une série consécutive d'un ou plusieurs dossiers et de sous-dossier, sans inclure le séparateur de dossier, dans le nom de classe correspond à, au moins, un "répertoire de base".
- Les noms des sous-dossiers consécutifs après un préfixe de dossier correspondent à un sous-répertoire dans un "répertoire de base", dans lequel les séparateurs de nom représentent des séparateurs de répertoire. Le nom du sous-répertoire DOIT correspondre à la casse des noms des sous-dossiers.
- Le nom de la classe terminale correspond à un nom de fichier se terminant par .php. Le nom du fichier DOIT correspondre à la casse du nom de la classe terminale.
- Les implémentations d'auto-chargeurs NE DOIVENT PAS lancer d'exceptions, NE DOIVENT PAS soulever d'erreurs de quelque niveau que ce soit, et NE DOIVENT PAS renvoyer de valeur.
Exemples
Le tableau ci-dessous indique le chemin de fichier correspondant pour un nom de classe, un préfixe d'un dossier et un répertoire de base donnés.
Nom de la classe | Préfixe du dossier | Répertoire de base | Résultat du chemin |
---|---|---|---|
\Acme\Log\Writer\File_Writer |
Acme\Log\Writer |
./acme-log-writer/lib/ |
./acme-log-writer/lib/File_Writer.php |
\Aura\Web\Response\Status |
Aura\Web |
/path/to/aura-web/src/ |
/path/to/aura-web/src/Response/Status.php |
\Symfony\Core\Request |
Symfony\Core |
./vendor/Symfony/Core/ |
./vendor/Symfony/Core/Request.php |
\Zend\Acl |
Zend |
/usr/includes/Zend/ |
/usr/includes/Zend/Acl.php |
Besoin d'aide ?
Rejoignez notre communauté officielle et ne restez plus seul à bloquer sur un problème !