我们采用的是 Laravel 5.5。
随着我们的迭代,laravel5.5 文件数量逐渐的增加,我们维护起来比较麻烦,于是考虑到按模块分化的想法。
我们原本的设计分包基本上参考原生 laravel 的设计。
app 目录下分为:
Console 文件夹存放命令
Events/Listener 存放事件触发
Exception 存放错误处理
Http\Controllers 存放控制类
Models 存放一些和数据库连接的模型
Services 存放一些和界面无关的数据处理
这是我们原本的应用设计,但是因为每次更新部分功能都要提交整个 PR,就经常出现冲突问题。
我想问的是有没有什么比较好的解决方案,能将 laravel 中,不同功能之间可以彼此独立进行更新,例如全部放到同一个文件夹里,同时不改变命名空间、不适用 vendor 的方式的建议。
我们个人讨论出来是有两种方案
一种是建立一个类似于 Modules 的文件夹,然后整个就变成了:
Modules\应用名\*
然后通过编写类似 autoload.php 的文件进行挂载。modules 之间就可以进行版本管理
这种方法能保障同步更新,但是没办法分离 web.php 里面的文件(就是 routes 文件夹里)
另一种是将整个 laravel 里面分为每个模块,然后每次更新后将文件复制过去。
比如如果有一个是
app\Http\Controllers\TestController
这个又恰好叫 User
然后就会分离成:
app\Http\Controllers\Test\TestController
这种方式显而易见的要修改很多代码,而且不基于这个修改版根本无法运行,意思是没办法自己进行测试。
我想问一下各位大佬用什么方式比较好,我们的需求(优先级依次递减)
1.方便管理各模块的代码更新
2.尽可能将大的代码文件例如 routes/web.php 文件拆开
3.尽可能减少对“模块”代码的修改,就是尽可能原始 laravel 也可以正常运行。
随着我们的迭代,laravel5.5 文件数量逐渐的增加,我们维护起来比较麻烦,于是考虑到按模块分化的想法。
我们原本的设计分包基本上参考原生 laravel 的设计。
app 目录下分为:
Console 文件夹存放命令
Events/Listener 存放事件触发
Exception 存放错误处理
Http\Controllers 存放控制类
Models 存放一些和数据库连接的模型
Services 存放一些和界面无关的数据处理
这是我们原本的应用设计,但是因为每次更新部分功能都要提交整个 PR,就经常出现冲突问题。
我想问的是有没有什么比较好的解决方案,能将 laravel 中,不同功能之间可以彼此独立进行更新,例如全部放到同一个文件夹里,同时不改变命名空间、不适用 vendor 的方式的建议。
我们个人讨论出来是有两种方案
一种是建立一个类似于 Modules 的文件夹,然后整个就变成了:
Modules\应用名\*
然后通过编写类似 autoload.php 的文件进行挂载。modules 之间就可以进行版本管理
这种方法能保障同步更新,但是没办法分离 web.php 里面的文件(就是 routes 文件夹里)
另一种是将整个 laravel 里面分为每个模块,然后每次更新后将文件复制过去。
比如如果有一个是
app\Http\Controllers\TestController
这个又恰好叫 User
然后就会分离成:
app\Http\Controllers\Test\TestController
这种方式显而易见的要修改很多代码,而且不基于这个修改版根本无法运行,意思是没办法自己进行测试。
我想问一下各位大佬用什么方式比较好,我们的需求(优先级依次递减)
1.方便管理各模块的代码更新
2.尽可能将大的代码文件例如 routes/web.php 文件拆开
3.尽可能减少对“模块”代码的修改,就是尽可能原始 laravel 也可以正常运行。