Как правильно разбить большой проект 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 в своем собственном подкаталоге (и вместе с этим в собственном пространстве имен контроллера).

Это, кажется, решает мой случай на данный момент, но мне интересно, если у меня возникнут проблемы с этой настройкой. Все примеры, которые я могу найти в Интернете, просто придерживаются стандартной структуры. Может кто-нибудь сказать мне, если это достойный способ сделать это? Или у кого-нибудь есть альтернативный способ сделать это?

Ответы на вопрос(2)

Ваш ответ на вопрос