将较大的Laravel 5项目分解为模块的正确方法是什么? [英] What is the correct way to break a larger Laravel 5 project into modules?
问题描述
我正在使用Laravel 5开发一个PHP项目,并且正在考虑为其设置不同的文件夹结构.
标准的Laravel文件夹结构如下:
/app
/commands
/Http
/Controllers
/Middleware
Kernel.php
routes.php
/Providers
Model.php
/config
/resources
etc...
但是,当项目变大时,您将拥有许多Controllers/Repository/Models等.这种结构会破裂.
例如:如果您必须深入研究路线,找到负责任的控制器,在大量控制器中找到该控制器,找出其作用并找到它,那么在管理面板中查找错误并非易事.排除其他大文件夹中其他可能负责的类,依此类推.简而言之:一团糟.
我一直在寻找将结构分解为模块的方法.我想出了一种方法,但是我不确定这是否是一个好方法.
我将为每个功能创建一个文件夹,并将所有相关代码放在一起.例如:
/app
/Admin
/Controllers
/Requests
/Models
routes.php
/Products
/Controllers
/Requests
/Models
routes.php
等(你明白了)
代替从标准RouteServiceProvider.php初始化1个路由器,我将不得不为每个模块编写一个ServiceProvider并从那里开始所有单独的路由.因此,在这种情况下,我将有一个AdminServiceProvider和ProductServiceProvider,它们每个都需要在其自己的子目录(以及它们自己的控制器名称空间)中使用routes.php文件.
这似乎现在可以解决我的问题,但是我想知道是否会在此设置上遇到麻烦.我在网上可以找到的所有示例都遵循标准结构.谁能告诉我这是否是一种体面的方式?还是有人有其他替代方法?
这是您建议的一种好方法,但无需自己进行.目前,我正在使用模块的L5项目中-每个模块都有用于存储库,模型,自己的路由文件等的目录.我正在使用 解决方案
This is a good way you proposed but there is no need to do it on your own. At the moment I'm working on a L5 project that uses modules - each of them have directories for repositories, models, own route file etc. I'm using Caffeinated module for that
这篇关于将较大的Laravel 5项目分解为模块的正确方法是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!