Wybacz @Crozin ale PSR-4 to nie wyrocznia.
Tak na prawdę wszystko zależy od Twoich preferencji. PRS-4 jest jan najbardziej na miejscu jeśli nie masz nic przeciwko temu, że struktura forlderów = namespace.
Czasami takie rozwiązanie jest nieco kłopotliwe. Dla przykładu:
Aplikacja składa się z szeregu komend (Command). Każda z nich ma detykowany routing, factory, configurację i request validator.
W PSR-4 mamy coś takiego:
Kod
Application
Command
Index.php
Configuration
Index.php
Factory
Index.php
Routing
Index.php
Validation
Index.php
Namespace wygląda wtedy mniej wiece tak
Kod
Application\Command\Index
Application\Configuration\Index
Application\Factory\Index
Application\Routing\Index
Application\Validation\Index
Problem w tym, że grupowanie klas w ten sposób jest co mnajmniej mało intuicyjne.
Lepszym rozwiązaniem była by taka struktura:
Kod
Application
Index
Command.php
Configuration.php
Routing.php
Factory.php
Validation.php
Ale wtedy PSR-4 zmusza cie do zupełnie innego namespace, który moim zdaniem, jest mniej logiczny. Fakt, że pogrupowałem pliki w jednym folderze, to nie znaczy są w tym samym namespace.
Kod
Application\Index\Command
Application\Index\Configuration
Application\Index\Factory
Application\Index\Routing
Application\Index\Validation
Podsumowując namespace != strktura folderów. Sam musisz sobie odpowiedzieć która opcja jest dla ciebie bardziej czytalna i łatwiejsza do utrzymania. Nie zawsze sztywne trzymanie się PSR-4 jest najlepszym rozwiązaniem.