将较大的Laravel 5项目分解为模块的正确方法是什么? [英] What is the correct way to break a larger Laravel 5 project into modules?

查看:60
本文介绍了将较大的Laravel 5项目分解为模块的正确方法是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆