我正在使用 Laravel 5 开发一个 PHP 项目,我正在考虑为其设置一个不同的文件夹结构。
标准的 Laravel 文件夹结构是这样的:
/app
/commands
/Http
/Controllers
/Middleware
Kernel.php
routes.php
/Providers
Model.php
/config
/resources
etc...
但是,当项目变大并且您有很多 Controller /存储库/模型等时。这个结构要崩溃了。
例如:如果您必须深入挖掘您的路由,找到哪个 Controller 负责,在大量 Controller 中找到那个 Controller ,找出它的作用,找出管理面板中的错误,就不是很容易了在其他大文件夹中找出其他可能负责的类,等等。简而言之:一团糟。
我一直在寻找将结构分解为模块的方法。我想出了一个方法,但我不确定这是否是一个好方法。
我会为每个功能创建一个文件夹,并将所有相关代码放在一起。例如:
/app
/Admin
/Controllers
/Requests
/Models
routes.php
/Products
/Controllers
/Requests
/Models
routes.php
等(你明白了)
不是从标准 RouteServiceProvider.php 初始化 1 个路由器,我必须为每个模块编写一个 ServiceProvider 并从那里启动所有单独的路由。所以在这种情况下,我会有一个 AdminServiceProvider 和一个 ProductServiceProvider,它们每个都需要在它们自己的子目录(以及它们自己的 Controller 命名空间)中的 routes.php 文件。
这似乎暂时解决了我的问题,但我想知道我是否会遇到此设置的问题。我在网上可以找到的所有示例都遵循标准结构。谁能告诉我这是否是一种体面的方法?或者有人有替代方法吗?
最佳答案
这是你提出的好办法,但没必要自己动手。目前我正在开发一个使用模块的 L5 项目——每个模块都有用于存储库、模型、自己的路由文件等的目录。我正在使用 Caffeinated module为此
关于php - 将较大的 Laravel 5 项目分解为模块的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29048473/