0

假设我有一个复杂的结构化 SF2 应用程序,由几个捆绑包组成,例如 CoreBundle、ApiMobileBundle、ApiPartnerBundle、WebsiteOneBundle、WebsiteTwoBundle、Backoffice1Bundle、Backoffice2Bundle、SearchBundle、UserBundle、LogBundle 等等......

到目前为止,一切都很好,应用程序在一个独特的 GIT 存储库下进行版本控制。但是今天,我们想要创建另一个应用程序,它可以受益于主应用程序的一些捆绑包。请注意,生成的应用程序不会部署在相同的服务器上。

简而言之,我们希望在几个 SF2 应用程序中共享几个捆绑包。你有什么建议?

编辑

我问这个问题是因为我正在与之合作的一位开发人员说这是纯粹的异端,而不是 SF2 哲学(关于应用程序框架、供应商管理、配置文件等......)。他认为最好的方法是将所有内容保存在同一个应用程序中,并且部署不必要的源不是问题......

4

2 回答 2

2

最好的办法是从项目中提取捆绑包并将它们存储在自己的 git 存储库中。

然后,在您的composer.json文件中,将它们作为依赖项添加到两个项目中。

当然,这也取决于您的捆绑软件与应用程序的分离,但这是一个设计因素,完全是另一个问题。

希望有帮助。

于 2013-10-18T09:41:16.837 回答
1

如果您有捆绑包之间相关的 Doctrine 实体,您可能会遇到一些麻烦。如果您决定使用一个捆绑包,其实体与另一个未使用的捆绑包相关,那么您将遇到 Doctrine 问题,在此处解释。这就是为什么将接口用于实体关系和 ResolveTargetEntityListener 是个好主意。(也就是说,如果您使用的是 Doctrine。)

我想我对缺失实体问题有一个非常简单的解决方案,我计划在接下来的几天内将其发布在上一个链接上,当我有时间实施它时,首先要做的是测试并发布它。

这个想法是基本上使所有捆绑包尽可能独立。不要在你的核心包中保留任何东西,除非你在多个包中共享它,或者它对你的项目的一般工作来说是最重要的。但到目前为止我发现的最大问题是那些该死的实体。

于 2013-10-18T09:42:55.817 回答