Convention d'espace de noms / dossier.
Les classes doivent être stockées dans des dossiers en fonction de leurs espaces de noms.
En général, vous allez créer un répertoire src / dans votre dossier racine, assis au même niveau que vendeur /, et y ajouter vos projets. Voici un exemple de la structure des dossiers:
.
+-- src
|
+-- Book
| +-- History
| | +-- UnitedStates.php - namespace Book\History;
+-- Vehicle
| +-- Air
| | +-- Wings
| | | +-- Airplane.php - namespace Vehicle\Air\Wings;
| +-- Road
| | +-- Car.php - namespace Vehicle\Road;
+-- tests
+-- test.php
+-- vendor
Différence entre psr-0 et psr-4
psr-0
Il est obsolète. En regardant le vendor/composer/autoload_namespaces.php
fichier, vous pouvez voir les espaces de noms et les répertoires auxquels ils sont mappés.
composer.json
"autoload": {
"psr-0": {
"Book\\": "src/",
"Vehicle\\": "src/"
}
}
- Recherche de Book \ History \ UnitedStates dans src / Book /History/UnitedStates.php
- Vous cherchez un véhicule \ Air \ Wings \ Airplane dans src / Vehicle /Air/Wings/Airplane.php
psr-4
En regardant le vendor/composer/autoload_psr4.php
fichier, vous pouvez voir les espaces de noms et les répertoires auxquels ils sont mappés.
composer.json
"autoload": {
"psr-4": {
"Book\\": "src/",
"Vehicle\\": "src/"
}
}
- Recherche de Book \ History \ UnitedStates dans src /History/UnitedStates.php
- Vous cherchez un véhicule \ Air \ Wings \ Airplane dans src /Air/Wings/Airplane.php
composer.json
"autoload": {
"psr-4": {
"Book\\": "src/Book/",
"Vehicle\\": "src/Vehicle/"
}
}
- Recherche de Book \ History \ UnitedStates src / Book /History/UnitedStates.php
- Vous cherchez un véhicule \ Air \ Wings \ Airplane dans src / Vehicle /Air/Wings/Airplane.php