Convención de espacio de nombres / carpeta.
Las clases deben almacenarse en carpetas de acuerdo con sus espacios de nombres.
En general, creará un directorio src / en su carpeta raíz, al mismo nivel que el proveedor /, y agregará sus proyectos allí. A continuación se muestra un ejemplo de la estructura de carpetas:
.
+-- 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
Diferencia entre psr-0 y psr-4
psr-0
Está en desuso. Mirando el vendor/composer/autoload_namespaces.php
archivo puede ver los espacios de nombres y los directorios a los que están asignados.
composer.json
"autoload": {
"psr-0": {
"Book\\": "src/",
"Vehicle\\": "src/"
}
}
- Buscando Libro \ Historia \ Estados Unidos en src / Libro / Historia / Estados Unidos.php
- Buscando Vehicle \ Air \ Wings \ Airplane en src / Vehicle /Air/Wings/Airplane.php
psr-4
Mirando el vendor/composer/autoload_psr4.php
archivo puede ver los espacios de nombres y los directorios a los que están asignados.
composer.json
"autoload": {
"psr-4": {
"Book\\": "src/",
"Vehicle\\": "src/"
}
}
- Buscando Libro \ Historia \ Estados Unidos en src /History/UnitedStates.php
- Buscando Vehículo \ Aire \ Alas \ Avión en src /Air/Wings/Airplane.php
composer.json
"autoload": {
"psr-4": {
"Book\\": "src/Book/",
"Vehicle\\": "src/Vehicle/"
}
}
- Buscando Libro \ Historia \ UnitedStates src / Libro /Historia/UnitedStates.php
- Buscando Vehicle \ Air \ Wings \ Airplane en src / Vehicle /Air/Wings/Airplane.php