小编iam*_*bin的帖子

将更大的Laravel 5项目分解为模块的正确方法是什么?

我正在使用Laravel 5开发一个PHP项目,我正在考虑为它设置一个不同的文件夹结构.

标准的Laravel文件夹结构是这样的:

/app
   /commands
   /Http
      /Controllers
      /Middleware
      Kernel.php
      routes.php
   /Providers
   Model.php
/config
/resources
etc...
Run Code Online (Sandbox Code Playgroud)

但是,当项目变得更大并且您有许多控制器/存储库/模型等时.这种结构会破裂.

例如:如果你必须挖掘你的路线,找到哪个控制器负责,在一大组控制器中找到那个控制器,找出它做了什么,找出其他的可能,在管理面板中找到一个bug并不是很容易其他大型文件夹中的负责类,依此类推.简而言之:这是一团糟.

我一直在寻找将结构分解为模块的方法.我想出办法,但我不确定这是不是一个好方法.

我会为每个功能创建一个文件夹并将所有相关代码放在一起.例如:

/app
   /Admin
      /Controllers
      /Requests
      /Models 
      routes.php
   /Products
      /Controllers
      /Requests
      /Models
      routes.php
Run Code Online (Sandbox Code Playgroud)

等(你明白了)

我不必从标准的RouteServiceProvider.php初始化1路由器,而是为每个模块编写一个ServiceProvider,并从那里开始所有单独的路由.所以在这种情况下,我会有一个AdminServiceProvider和一个ProductServiceProvider,每个都需要在自己的子目录中使用routes.php文件(并使用它们自己的控制器命名空间).

这似乎解决了我的情况,但我想知道我是否会遇到这种设置的麻烦.我在网上找到的所有例子都坚持标准结构.谁能告诉我这是否是一个体面的方式呢?或者有人有另一种方法吗?

php module laravel laravel-5

5
推荐指数
2
解决办法
3153
查看次数

标签 统计

laravel ×1

laravel-5 ×1

module ×1

php ×1