Php 拉威尔模结构

Php 拉威尔模结构,php,module,laravel,modularity,Php,Module,Laravel,Modularity,我正在使用Laravel开发一个应用程序。但是,我对应用程序的模块化结构有疑问 这里有一个例子 假设我需要一个名为“特色项目”的模块 这是一个小模块,应该包含在一些控制器中 问题是我不知道该怎么做?这是否应该是一个新的控制器,它将在其他控制器中调用 这应该是一个模型吗? 这应该写成一个包吗 有人知道什么是最好的方法吗?把它放在库中并自动加载怎么样 因此,您可以在任何控制器中调用它。类似于特色项目的功能可能会调用您的数据库。我会在您的产品模型中创建一个名为getFeaturedItems的方法。然

我正在使用Laravel开发一个应用程序。但是,我对应用程序的模块化结构有疑问

这里有一个例子

假设我需要一个名为“特色项目”的模块

这是一个小模块,应该包含在一些控制器中

问题是我不知道该怎么做?这是否应该是一个新的控制器,它将在其他控制器中调用

这应该是一个模型吗? 这应该写成一个包吗


有人知道什么是最好的方法吗?

把它放在库中并自动加载怎么样


因此,您可以在任何控制器中调用它。

类似于特色项目的功能可能会调用您的数据库。我会在您的产品模型中创建一个名为getFeaturedItems的方法。然后使用雄辩的或流利的语言来获得结果。

我不认为这是一个正确的答案,因为这是一个偏好的问题,尽管有一些事情需要记住,以便让您明智地决定代码应该放在哪里

模块是否占地面积小,并且只需自身即可正常工作

  • 创建库
模块是否需要自己的布线和视图,但不需要库

  • 创建应用程序控制器
  • 使用Laravel路线
  • 使用捆绑控制器
模块是否包含上述两项

  • 创建包含控制器和库的捆绑包

这并不是那么简单,其他因素也应该考虑在内。例如,如果模块需要多个控制器,最好将其写入一个捆绑包中。由于bundle不需要您在bundle目录中拥有start.php文件以外的任何内容,因此您可以向Autoloader注册所需内容。从中您可以看到,许多人的偏好是将所有模块化代码构建成捆绑包。

此软件包使您能够将Laravel 5与模块系统一起使用。您只需将具有自己控制器、模型、视图、翻译和路由文件的模块拖放或生成到app/modules文件夹中,然后继续使用它们

按照步骤进行操作

装置

安装此软件包的最佳方法是通过您的终端via Composer

从项目根目录运行以下命令

作曲家需要artem schander/l5模块化 完成此操作后,只需将服务提供者添加到项目的config/app.php中,就完成了

服务提供商

ArtemSchander\L5Modular\ModuleServiceProvider::class

开始

内置的Artisan命令php Artisan make:module name[--no migration][--no translation]在app/Modules文件夹中生成一个随时可用的模块,必要时生成一个迁移/翻译