Konwencja przestrzeni nazw / folderów.
Klasy powinny być przechowywane w folderach zgodnie z ich przestrzeniami nazw.
Ogólnie rzecz biorąc, utworzysz katalog src / w folderze głównym na tym samym poziomie co dostawca / i dodasz tam swoje projekty. Poniżej znajduje się przykład struktury folderów:
.
+-- 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
Różnica między psr-0 i psr-4
psr-0
To jest przestarzałe. Patrząc na vendor/composer/autoload_namespaces.php
plik, możesz zobaczyć przestrzenie nazw i katalogi, na które są mapowane.
composer.json
"autoload": {
"psr-0": {
"Book\\": "src/",
"Vehicle\\": "src/"
}
}
- Szukasz Book \ History \ UnitedStates w src / Book /History/UnitedStates.php
- Poszukuje pojazdu \ Air \ Wings \ Airplane w src / Vehicle /Air/Wings/Airplane.php
psr-4
Patrząc na vendor/composer/autoload_psr4.php
plik, możesz zobaczyć przestrzenie nazw i katalogi, na które są mapowane.
composer.json
"autoload": {
"psr-4": {
"Book\\": "src/",
"Vehicle\\": "src/"
}
}
- Szukasz Book \ History \ UnitedStates w src /History/UnitedStates.php
- Poszukiwanie pojazdu \ Air \ Wings \ Airplane w src /Air/Wings/Airplane.php
composer.json
"autoload": {
"psr-4": {
"Book\\": "src/Book/",
"Vehicle\\": "src/Vehicle/"
}
}
- Szukasz Book \ History \ UnitedStates src / Book /History/UnitedStates.php
- Poszukuje pojazdu \ Air \ Wings \ Airplane w src / Vehicle /Air/Wings/Airplane.php