Convenção de namespace / pasta.
As classes devem ser armazenadas em pastas de acordo com seus namespaces.
Em geral, você criará um diretório src / na sua pasta raiz, no mesmo nível do fornecedor /, e adicionará seus projetos lá. Abaixo está um exemplo da estrutura de pastas:
.
+-- 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
Diferença entre psr-0 e psr-4
psr-0
Está obsoleto. Olhando para o vendor/composer/autoload_namespaces.php
arquivo, você pode ver os espaços para nome e os diretórios para os quais eles são mapeados.
compositer.json
"autoload": {
"psr-0": {
"Book\\": "src/",
"Vehicle\\": "src/"
}
}
- Procurando por Book \ History \ UnitedStates em src / Book /History/UnitedStates.php
- Procurando Vehicle \ Air \ Wings \ Airplane em src / Vehicle /Air/Wings/Airplane.php
psr-4
Olhando para o vendor/composer/autoload_psr4.php
arquivo, você pode ver os espaços para nome e os diretórios para os quais eles são mapeados.
compositer.json
"autoload": {
"psr-4": {
"Book\\": "src/",
"Vehicle\\": "src/"
}
}
- Procurando por Book \ History \ UnitedStates em src /History/UnitedStates.php
- Procurando Veículo \ Ar \ Asas \ Avião em src /Air/Wings/Airplane.php
compositer.json
"autoload": {
"psr-4": {
"Book\\": "src/Book/",
"Vehicle\\": "src/Vehicle/"
}
}
- Procurando por Book \ History \ UnitedStates src / Book /History/UnitedStates.php
- Procurando Vehicle \ Air \ Wings \ Airplane em src / Vehicle /Air/Wings/Airplane.php