2016-08-17 37 views
1

问题:什么是使用共享内部库的SATIS的正确方法

我有实体,并将在Symfony中编写的2个项目相同。我们有一个想法来分享他们之间的项目。第一个想法是使用git子模块,但每个人都知道这不是最舒服的解决方案。所以我们把它们作为独立的git仓库放在Satis中。

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

问题是如何设置作曲家,所以我可以使用它们不在vendor目录中。提交的样子是怎样的?是否需要git子模块?

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

所以总结一下。

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

+0

我想你可以尝试使用Composer的'--prefer-source'选项。我没有尝试过,因此我不会将它作为答案发布,但此链接可能有助于http://dimsav.com/blog/9/git-repository-inside-composer-vendors –

+0

更喜欢源代码将下载它来自github/gitlab等,而不是packagist/satis,所以这不是一个probelm – Robert

+0

它会根据您的composer.json配置下载它。资源库的位置并不重要。 –

回答

0

这是为我工作的解决方案。

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

在主要的项目我已经添加了此目录的.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" 
      } 
     ], 

所以现在在开发时,当我做作曲者更新时,库被链接到vendor目录。如果我没有这个目录,它会得到满意的。在生产库中会得到满足,因为我的方向不存在。我在PSR加载时遇到了一些问题,但一切正常。

我希望它能帮助有同样问题的人。

相关问题