Conforme a sua aplicação cresce é provavel que seu arquivo de rodas fique muito grande. Separar esses arquivos em arquivos menores ajuda na organização e manutenção posterior do código.
Neste exemplo separamos os arquivos de rotas da api
em vários arquivos agrupados dentro do diretório routes/api
.
Para fazer com que o Laravel reconheça essas rotas é preciso registrar cada arquivo de rota dentro do RouteServiceProvider.php
usando o código abaixo.
Route::prefix('api')
->middleware('api')
->namespace($this->namespace)
->group(base_path('routes/api/arquivo.php'));
Adicionar um trecho desses para cada arquivo pode ser tão trabalhoso quanto ter um arquivo de rotas gigantesco.
Para contornar esse problema utilizamos o método allFiles
da facade File
do Laravel para ler o conteúdo do diretório, esse método retorna um array
de objetos do tipo SplFileInfo
(http://php.net/manual/en/class.splfileinfo.php).
Mapeamos cada arquivo extraíndo o filename
a partir do método getFilename
da classe SplFileInfo
, e usamos o nome do arquivo para concatenar com o caminho do diretório e registrar no RouteServiceProvider
.
foreach($files as $file) {
Route::prefix('api')
->middleware('api')
->namespace($this->namespace)
->group(base_path('routes/api/' . $file->getFilename()));
}
Excelente!
Me ajudou bastante!
Obrigado por compartilhar.