【问题标题】:How to develop a composer app with external lib projects?如何使用外部库项目开发作曲家应用程序?
【发布时间】:2020-05-28 13:46:47
【问题描述】:

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

在开发(本地)环境中,我想要我的应用程序编写器,通过符号链接获取包,并从 git 存储库获取包:

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

最好的做法是什么?

【问题讨论】:

  • 据我所知,这方面没有最佳实践,想到的任何解决方案对我来说似乎都是 hacky,因为您要么必须保留 2 个 composer.json,要么在构建之前修改现有的为产品。如果仅此应用程序使用捆绑包,请考虑将它们移动到 App-namespace 中。否则,您可能不得不接受子弹并始终使用存储库或忍受问题/hackiness。
  • 是的,我没有找到任何相关信息,但我很确定这是开发 Symfony 应用程序时的常见情况,对吧?
  • 我发现随着向无捆绑应用程序的转变不太常见。 Bundles 应该只用于配置库。如果代码需要在应用程序中如此频繁地修改,那么符号链接库是有意义的,它可能应该是应用程序的一部分。显然,这只是一般规则,您的里程可能会有所不同。
  • 来自 SF4 “不再推荐这样做,捆绑包只能用于在多个应用程序之间共享代码和功能。”
  • @ThomasDecaux 只需用 library 替换术语“bundle”,你就有了与当前 Symfony 版本兼容的东西,但会触发同样的问题

标签: symfony composer-php


【解决方案1】:

最佳做法是让本地应用尽可能类似于生产环境。

为什么你不能一直简单地从 git 存储库安装你的包?您开发了一个包,标记新版本并更新您的主应用程序,并且您 100% 确定它与生产环境相同。

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

【讨论】:

  • 就我遇到的情况而言,我不想标记和发布尚未准备好发布的库版本
猜你喜欢
  • 2021-07-12
  • 2021-04-30
  • 2014-10-02
  • 2021-06-14
  • 2021-04-25
  • 1970-01-01
  • 1970-01-01
  • 2020-02-09
  • 2014-05-05
相关资源
最近更新 更多