Symfony 如何使用外部库项目开发composer应用程序?

Symfony 如何使用外部库项目开发composer应用程序?,symfony,composer-php,Symfony,Composer Php,使用symfony5,我正在开发一个应用程序,带有捆绑包。每个捆绑包都有自己的存储库 在dev(local)环境中,我需要我的app composer,通过符号链接获取软件包,并在生产时从git存储库获取: { "type": "path", "url": "../common", "options": { "symlink": true

使用symfony5,我正在开发一个应用程序,带有捆绑包。每个捆绑包都有自己的存储库

在dev(local)环境中,我需要我的app composer,通过符号链接获取软件包,并在生产时从git存储库获取:

{
    "type": "path",
    "url": "../common",
    "options": {
        "symlink": true
    }
}, 
{
    "type": "vcs",
    "url": "https://gitlab.bewizyu.com/XXX/common"
}

最佳实践是什么?

最佳实践是让本地应用程序尽可能与生产应用程序相似

为什么不能一直从git存储库安装包呢?您开发了一个捆绑包,标记了新版本并更新了主应用程序,您100%确定它与生产应用程序相同


使用符号链接,您可能会遇到生产崩溃和本地工作的情况,因为存在不同的设置。

据我所知,在这方面没有任何最佳的做法,想到的任何解决方案对我来说似乎都不太好,因为你必须保留2个Cyr.jSon或者在构建之前先修改现有的一个。如果只有这个应用程序使用了捆绑包,那么可以考虑将它们移到应用程序命名空间中。否则,您可能必须承担全部责任,始终使用存储库或忍受问题/黑客行为。诚然,我没有发现这方面的任何东西,但我非常确定,在开发Symfony应用程序时,这是一种常见的情况,对吗?我发现,随着应用程序向无捆绑的方向发展,这种情况不太常见。捆绑包只能用于配置库。如果代码需要在应用程序中频繁修改,以致于符号链接库是有意义的,那么它可能应该成为应用程序的一部分。显然,这只是一条一般规则,您的里程数可能会有所不同。从SF4开始,“不再建议使用此功能,捆绑包只能用于在多个应用程序之间共享代码和功能”。@ThomasDecaux只需将术语“捆绑包”替换为库,您就拥有了与当前Symfony版本兼容的功能,但引发了同样的问题就我所处的情况而言,我不想标记并发布一个尚未发布的库版本