处理共享文件,例如在3个不同的laravel项目之间进行迁移

时间:2019-05-18 16:09:31

标签: laravel

我的场景有点奇怪,我不清楚如何处理。因此,假设我有一个项目,该项目具有3个微服务(3个不同的Laravel项目):Admin,Agent和Front。

真正的问题是共享文件,例如迁移,种子,工厂甚至作业队列(我的代理应用处理所有作业队列),但让我们说管理服务将这些作业分派给Redis,而代理应用接受作业并处理它们(另一个问题之所以在这里是因为由于laravel作业队列中的文件序列化,我需要在每个laravel项目中拥有这些作业类)。

对我来说,临时解决方案是在两个项目中都使用它们,但是我相信必须有更好的方法来解决这个问题。另一个问题是,每个项目都有自己的测试,并且这些测试需要迁移,播种者和工厂,因此我认为在这里重复文件不是一个好主意,因为项目日趋发展,一天变得一团糟。我想一个可能的解决方案是有一个git子模块。但我需要您的意见

谢谢。

1 个答案:

答案 0 :(得分:0)

作业类可以在私有包中声明(即托管在私有git存储库中),并且您的项目可以在composer中包含它们。

迁移也可以打包处理(请参阅docs),我相信您也可以在其中注册Seeders和Factory。

因此,我认为最好的解决方案是为您的3个项目共享这些功能的软件包。