如何将我的本地文件系统设置为我的开发环境的composer存储库?

时间:2014-12-09 20:45:29

标签: php maven svn composer-php

我通常使用Java来使用Maven作为依赖管理(DM)来创建IT项目。根据要求,我必须在公司中实施DM,我在一些用PHP制作的项目中工作。其中一个要求是他们不想使用任何类型的框架作为symfony,laravel,zend等。

我正在研究PHP的一些DM,发现最好的选择是Composer。我正在从事多层项目,类似的事情:

  • 核心
  • 服务
  • 客户端
  • 网站

当我开始构建这个结构时,我发现的第一个问题是Composer没有检索递归依赖,因此我将Satis实现为Package Repository。我使用Satis而不是Packagist是因为项目是私有项目,并且这实现了SVN作为版本控制系统,而Packagist使用GitHub来检索项目的源代码。

在解释了我所做的所有实施后,我发现了多层结构发展的一些障碍。

  1. 例如,如果我修改 Core 项目,为了反映那些我必须提交到SVN的更改,之后刷新Satis存储库,最后更新我正在使用的项目核心。出于这个原因,我试图找到一些方法将依赖项指向我的文件系统,以避免每次都提交,并且只在功能,错误,修复完成时提交。
  2. 我的satisf.json看起来像

    {
        "name": "My Repository",
        "homepage": "https://www.myrepository.com/",
        "repositories": [
            { "type": "vcs", "url": "file:///C:/core/branches/core/" },
            { "type": "vcs", "url": "file:///C:/services/branches/services/" }
        ],
        "require-all": true
    }
    

    感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

仅支持本地引用,只需指定文件路径即可。

我不知道它在Windows上是如何工作的,但在基于unix / linux的系统上,以下工作:

{
    "repositories": [
        { "type": "vcs", "url": "/path/to/git/repo" }
    ]
}

参考文献:

答案 1 :(得分:1)

Satis不接受文件URL来抓取内容,但您可以直接在根项目composer.json中指向SVN存储库(因为,正如您已经发现的,Composer无法解决这些问题)递归地存储库。)

您不必直接依赖此存储库中提供的软件包,您只需提及它就可以更新内容。