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


How to set my local filesystem as composer repository for my dev environment?

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

我正在研究一些PHP的DM,发现最好的选择是Composer。我正在从事多层项目,如下所示:

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

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

解释了我所做的所有实现之后,我发现在开发多层结构时会遇到一些障碍。

  1. 例如,如果我修改核心项目,为了反映这些更改,我必须提交到 SVN 中,然后刷新 Satis 存储库,最后更新我正在使用核心的项目。出于这个原因,我试图找到某种方法来将依赖项指向我的文件系统以避免每次提交,并且仅在功能、错误、修复完成后提交。

我的满意.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
}

感谢您的帮助。

Satis 不接受从中抓取内容的文件 URL,但您可以在根项目的composer.json中直接指向 SVN 存储库(因为,正如您已经发现的那样,Composer 不会递归解析这些存储库(。

您不必直接依赖此存储库中提供的包,只需提及它即可使其可用于更新内容。

仅通过指定文件路径即可支持本地引用。

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

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

引用:

  • http://tech.vg.no/2014/11/25/using-local-packages-as-composer-dependencies/
  • https://groups.google.com/forum/#!topic/composer-dev/P2ikrm_DFmc
相关文章: