Closed williamduarteoficial closed 7 years ago
William, basta usar o exemplo do route service provider.
Você pode ver que ele mapeia grupos de rotas e inclui o arquivo de rotas no grupo (web.php, API.php, etc)
Em 20 de fev de 2017 12:44, "William Duarte" notifications@github.com escreveu:
Estou trabalhando em um aplicativo de grande porte, mas eu quero separar estes grupos de rotas do arquivo web.php, pois senão daqui a pouco ele estará gigante.
Tem como chamar no arquivo web.php, não seria muito elegante usar require neste arquivos abaixo:
admin.php - users.php - wizard.php - etc.php
Há um outra alternativa? Tipo o Auth faz!
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/laravelbrasil/forum/issues/22, or mute the thread https://github.com/notifications/unsubscribe-auth/AFObii9fx34rgQAPgK2Mrr4wDpFNK4Ncks5rebTLgaJpZM4MGVOf .
Você pode criar um provider pra cada arquivo de rota.
Uma boa recomendação é estruturar o projeto como o @hernandev sugere em alguns vídeos lá no codecasts. Dá uma passeada por lá, vc vai encontrar boas respostas.
@williamduarteoficial Conforme muito bem sugerido pelo @andreportaro, você pode estar analisando o código da classe App\Providers\RouteServiceProvider
para tomar como base: https://github.com/laravel/laravel/blob/master/app/Providers/RouteServiceProvider.php
Por padrão o Laravel centraliza as rotas num único service provider que por sua vez carrega as rotas de arquivos procedurais. Note que isso é apenas para simplificar a estrutura padrão - conforme muito bem lembrado pelo @zabaala, você pode perfeitamente ter quantos service providers quiser/precisar, e inclusive não usar arquivos procedurais, declarando as rotas em classes (o que fica mais fácil de documentar o código). ;-)
Em projetos grandes você muito provavelmente vai acabar adotando arquiteturas como Domain-Driven Development ou Hexagonal Architecture ou pelo menos modularizar a aplicação. Nestas arquiteturas é muito comum você separar as rotas por cada domínio da aplicação. Um bom exemplo de arquitetura baseada no DDD é o código do próprio Codecasts! 😃
Seguem exemplos da arquitetura do Codecasts, que fazem essa abordagem de múltiplos service providers e rotas definidas em classes:
Navegando pelo código-fonte do diretório app\Units
você irá ver que tudo ali segue essa mesma estrutura, onde cada "módulo" fica responsável por declarar e registrar as próprias rotas.
Numa aplicação de grande porte, esta seria uma abordagem muito interessante, pois facilita bastante tanto na organização como na documentação do código! 😉
É isso aí!
Show galera e valeu @paulofreitas por esta informações, vou estuda-las afinco.
Boa noite!
Não sei se é a melhor opção, mas, eu gosto bastante de separa minhas rotas conforme o modelo desse pacote: https://github.com/rappasoft/laravel-5-boilerplate/tree/master/routes
usando o metodo includeRouteFiles() da para colocar todos as rotas de um respectivo departamento em uma pasta.
Estou trabalhando em um aplicativo de grande porte, mas eu quero separar estes grupos de rotas do arquivo web.php, pois senão daqui a pouco ele estará gigante.
Tem como chamar no arquivo web.php, não seria muito elegante usar require neste arquivos abaixo:
admin.php - users.php - wizard.php - etc.php
Há uma outra alternativa? Tipo o Auth faz!