Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 什么';s通过共享内部库使用SATIS的正确方法_Php_Git_Composer Php_Symfony_Satis - Fatal编程技术网

Php 什么';s通过共享内部库使用SATIS的正确方法

Php 什么';s通过共享内部库使用SATIS的正确方法,php,git,composer-php,symfony,satis,Php,Git,Composer Php,Symfony,Satis,问题是: 我有两个用Symfony编写的项目的实体是相同的,并且将是相同的。我们有了一个在项目之间共享它们的想法。第一个想法是使用git子模块,但每个人都知道这不是最舒适的解决方案。因此,我们将它们作为单独的git存储库放在Satis中 在一个项目中,我想在应用程序目录src/AppBundle/Entity中编辑它们,在另一个项目中,它们可以下载到vendor目录中 问题是如何设置composer,以便我可以不在供应商目录中使用它们。提交将是什么样子?这需要git子模块吗 我已经读过关于“ty

问题是:

我有两个用Symfony编写的项目的实体是相同的,并且将是相同的。我们有了一个在项目之间共享它们的想法。第一个想法是使用git子模块,但每个人都知道这不是最舒适的解决方案。因此,我们将它们作为单独的git存储库放在Satis中

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

问题是如何设置composer,以便我可以不在
供应商
目录中使用它们。提交将是什么样子?这需要git子模块吗

我已经读过关于
“type”:“path”
对于存储库,我已经检查了composer安装程序。除了我现在想到的符号链接,还有其他解决方案吗

总而言之


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

这是对我有效的解决方案

我已将内部库克隆到project中

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

"repositories": [
        {
            "type": "path",
            "url": "internal-library",
            "options": {
                "symlink": true
            }
        },
        {
            "type": "composer",
            "url": "http://our-satis"
        }
    ],
在另一个项目中,我只添加了satis存储库(实体将仅在一个项目中更改,并导入到另一个项目中)

所以现在在开发中,当我更新composer时,库被符号链接到供应商目录。如果我没有这个目录,它将从satis获取。由于我的指令不存在,生产存储库将从satis获取。我在PSR加载方面遇到了一些问题,但一切正常


我希望它能帮助那些和我有同样问题的人

我想您可以尝试使用Composer的
——首选源代码
选项。我没有尝试过,所以我不会将其作为答案发布,但此链接可能会有帮助。首选source将从github/gitlab等下载它,而不是PackageGist/satis,因此这不是问题。它将根据您的composer.json配置下载它。存储库在哪里并不重要。是的,但使用首选源,它将尝试从CVS(或任何其他源)而不是缓存的“dist”版本下载它。这仍然不是问题。这不是您想要的吗?您希望在一个本地项目中处理两个存储库。因此,您需要克隆存储库,而不是下载dist版本。
"repositories": [
            {
                "type": "composer",
                "url": "http://our-satis"
            }
        ],