Как правильно разбить большой проект Laravel 5 на модули?
Я работаю над проектом PHP с Laravel 5, и я думаю о настройке другой структуры папок для него.
Стандартная структура папок Laravel выглядит примерно так:
/app
/commands
/Http
/Controllers
/Middleware
Kernel.php
routes.php
/Providers
Model.php
/config
/resources
etc...
Однако, когда проект становится больше, и у вас есть много контроллеров / репозиториев / моделей и тому подобное. Эта структура сломается.
Например: не очень легко найти ошибку в вашей админ-панели, если вам нужно покопаться в маршрутах, найти, какой контроллер отвечает, найти этот контроллер среди большого набора контроллеров, выяснить, что это делает, выяснить другие возможные ответственные занятия в других больших папках и тд. Короче говоря: это беспорядок.
Я искал способы разбить структуру на модули. Я нашел способ сделать это, но я не уверен, что это хороший способ.
Я бы сделал папку с каждой функциональностью и соединил весь связанный код. Например:
/app
/Admin
/Controllers
/Requests
/Models
routes.php
/Products
/Controllers
/Requests
/Models
routes.php
и т.д. (вы поняли)
Вместо того, чтобы инициализировать 1 маршрутизатор из стандартного RouteServiceProvider.php, я должен был бы написать ServiceProvider для каждого модуля и запустить все отдельные маршруты оттуда. Таким образом, в этом случае у меня будет AdminServiceProvider и ProductServiceProvider, для каждого из которых требуется файл rout.php в своем собственном подкаталоге (и вместе с этим в собственном пространстве имен контроллера).
Это, кажется, решает мой случай на данный момент, но мне интересно, если у меня возникнут проблемы с этой настройкой. Все примеры, которые я могу найти в Интернете, просто придерживаются стандартной структуры. Может кто-нибудь сказать мне, если это достойный способ сделать это? Или у кого-нибудь есть альтернативный способ сделать это?