Composer - Autoload e PSR-0 vs PSR-4
-
21-12-2019 - |
Pergunta
Estou começando a estudar Composer e estou desenvolvendo um sistema onde separo os arquivos principais da aplicação, da seguinte forma:
/root |-- /src |-- /App |-- /DBConfig |-- /Controller |-- /Model |-- /Core |-- /Helper |-- /Controller |-- /Model
Portanto, para definir esta configuração no arquivo compositor.json e obter acesso a todas as classes /Aplicativo muito /Essencial seria assim?
"autoload" : { "psr-X" : { "App\\" : "/src", "Core\\" : "/src" } }
Ou existe uma maneira mais correta?
Eu também li sobre PSR-0 versus PSR-4 e ainda estou um pouco em dúvida sobre qual usar.No meu caso, o que devo implementar, PSR-0 ou PSR-4?
Solução
Você não precisava de 2 entradas, apenas uma para o namespace principal, então algo assim para PSR-4:
"autoload" : {
"psr-4" : {
"MyApp\\" : "/src" }
}
Contanto que tudo em src/ use o mesmo namespace, isso é tudo que você precisa.Apenas deixe o autoloader fazer seu trabalho.
Quanto a qual usar, eu escolheria o PSR-4 porque em algum momento espera-se que o PSR-0 seja obsoleto e como o PSR-4 é feito para ser compatível com versões anteriores, menos algumas verrugas para programas legados mais antigos, não há realmente uma diferença, exceto que você começa a usar alguns dos recursos mais recentes