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

标签 php laravel module laravel-5

我正在使用 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/

相关文章:

php - Laravel:期待响应 250 但得到 ""消息 ""

php - 自定义 Laravel 错误报告以删除堆栈跟踪

php - Laravel::合并两个数据库查询对象

python - 获取模块名称 : x. __module__ vs x.__class__.__module__

windows - Node.js 在 Windows 上安装模块

javascript - 我怎样才能减少 if else 语句

php - Mysql计算不一致

php - HTTP 500 错误但确实将数据存储到数据库 - Wordpress new-post.php、post.php、edit-post.php 在更新数据结构和插件后无法正常工作

java - 在 Java 项目中引用外部模块的最佳实践

用于数据分析的 Java Web 平台