我正在使用Laravel 5开发一个
PHP项目,我正在考虑为它设置一个不同的文件夹结构.
标准的Laravel文件夹结构是这样的:
/app
/commands
/Http
/Controllers
/Middleware
Kernel.php
routes.php
/Providers
Model.php
/config
/resources
etc...
但是,当项目变得更大并且您有许多控制器/存储库/模型等时.这种结构会破裂.
例如:如果你必须挖掘你的路线,找到哪个控制器负责,在一大组控制器中找到那个控制器,找出它做了什么,找出其他的可能,在管理面板中找到一个bug并不是很容易其他大型文件夹中的负责类,依此类推.简而言之:这是一团糟.
我一直在寻找将结构分解为模块的方法.我想出办法,但我不确定这是不是一个好方法.
我会为每个功能创建一个文件夹并将所有相关代码放在一起.例如:
/app
/Admin
/Controllers
/Requests
/Models
routes.php
/Products
/Controllers
/Requests
/Models
routes.php
等(你明白了)
我不必从标准的RouteServiceProvider.php初始化1路由器,而是为每个模块编写一个ServiceProvider,并从那里开始所有单独的路由.所以在这种情况下,我会有一个AdminServiceProvider和一个ProductServiceProvider,每个都需要在自己的子目录中使用routes.php文件(并使用它们自己的控制器命名空间).
这似乎解决了我的情况,但我想知道我是否会遇到这种设置的麻烦.我在网上找到的所有例子都坚持标准结构.任何人都能告诉我这是否是一个体面的方式吗?或者有人有另一种方法吗?