两个项目共享相同的实体 - 如何维护代码?

时间:2018-03-28 10:13:46

标签: symfony git-submodules

我们有一个项目分为两部分 - API和前端 两者都是用Symfony 3.4编写的,两者都在不同的服务器和git存储库中 正如您可能已经知道的那样,Symfony使用捆绑包,每个捆绑包都拥有它自己的实体 我们的两个项目都使用捆绑包中的相同实体,加上前端有额外的实体。

目前,为了维护实体,它有点困难,因为我们在其中一个实体中所做的每一项更改都必须与其他项目的实体保持一致。

我正在考虑使用git中的子模块功能来保持它们都是最新的,但那么,捆绑包中的其他文件夹呢?像服务和控制器一样?我只是想跟踪实体,所以当我们进行更改时,两个项目(或任何人)都可以拥有那些没有我们的项目,不得不复制粘贴内容。

你在想什么,你在暗示什么?

这是结构的一个例子。我希望它具有可读性


Project A          Project B
-Bundle 1          -Bundle 1
---Entities        --- Entities

-Bundle 2          -Bundle 2
---Entities        ---Entities
---Services

-Bundle 3          -Bundle 3
---Entities        ---Entities
                   ---Services

                   -Bundle 4

2 个答案:

答案 0 :(得分:1)

有一些选项,您可以使用API来获取Frontend上的数据,这意味着您只需要API捆绑中的实体。

或者您可以让第三个项目中的实体只与实体捆绑在一起。捆绑您将使用Composer

添加到其他两个项目

https://knpuniversity.com/screencast/question-answer-day/create-composer-package

答案 1 :(得分:0)

在另一个存储库中移动实体和/或共享部分,并考虑开始使用git子模块或git子树。使用此技巧,您可以在另一个内部添加git存储库。您还可以更新从子模块提交和推送的共享内容。