将 SATIS 与共享内部库一起使用的正确方法是什么

What's the proper way to use SATIS with shared internal library

问题:

对于用 Symfony 编写的 2 个项目,我的实体现在和将来都是相同的。我们想到了在项目之间共享它们的想法。第一个想法是使用 git 子模块,但每个人都知道这不是最舒服的解决方案。所以我们将它们作为单独的 git 存储库放在 Satis 中。

在一个项目中,我想在应用程序目录 src/AppBundle/Entity 中编辑它们,而在另一个项目中,它们可以下载到 vendor 目录中。

问题是如何设置作曲家,这样我就可以在 vendor 目录之外使用它们。提交会是什么样子?为此需要 git 子模块吗?

我已经阅读了关于存储库的 "type" : "path",我已经检查了作曲家安装程序。我现在想到的除了符号链接之外还有其他解决方案吗?

所以总结一下。

如何在应用程序目录中的一个项目中使用共享库,而在供应商目录中的另一个项目中使用共享库?

这是对我有用的解决方案。

我已将内部库克隆到项目中。

在主项目中,我已将此目录添加到 .gitignore,在 composer.json 中,我已添加以下行

"repositories": [
        {
            "type": "path",
            "url": "internal-library",
            "options": {
                "symlink": true
            }
        },
        {
            "type": "composer",
            "url": "http://our-satis"
        }
    ],

在另一个项目中,我只添加了 satis 存储库(实体将仅在一个项目中更改并导入到另一个项目中)。

"repositories": [
            {
                "type": "composer",
                "url": "http://our-satis"
            }
        ],

所以现在在开发中,当我做 composer update 时,库被符号链接到 vendor 目录。如果我没有这个目录,它将从 satis 获取。在生产存储库中将从 satis 获取,因为我的目录不存在。我在 PSR 加载方面遇到了一些问题,但一切都按预期进行。

我希望它能帮助遇到与我相同问题的人。