同时开发Composer的库和主要项目的最佳实践是什么?

时间:2018-09-29 08:18:36

标签: php git composer-php phpstorm

我正在努力了解在主要项目开发和库开发中使用Git的最佳实践是什么。我将尝试解释: 我正在同时开发一个项目和一个图书馆。它们都在GitHub上。这是我当前的工作流程:

  1. 在库中进行更改
  2. 提交并将其推送到GitHub,在Packagist上进行发布和更新
  3. 在主项目中运行composer update,以便下载新版本的库
  4. 使用新的库版本进行测试

那太复杂了,不对。该问题的锻炼方法是什么?我有一个选择:

  • 将库定义为本地存储库,并将此定义放置在主项目的composer.json文件中。 但这很奇怪,因为如果我将composer.json上传到GitHub,它将包含本地存储库定义,这是不对的。

也许有一些聪明而酷的方法可以解决此问题,但我对此一无所知。请说明如何执行此操作。预先感谢。

P.S。我正在使用PhpStorm,也许它有一个选项可以帮助我们解决问题。

1 个答案:

答案 0 :(得分:2)

如果您经常更新主项目使用的库,则应考虑将其托管为本地存储库。

您可以使用composer CLI添加存储库(请参见docs),但是只需手动更新composer.json文件即可。

打开您的composer.json文件并找到repositories属性(如果不存在,请在根作用域中创建它)。

它应该是一个对象数组,并且每个对象都应该具有类型(版本控制系统为vcs)和url。

还将您的库添加到require。如果需要,可以使用git版本标签,但是指向dev-master是一种很常见的做法。

{
    "name": "mainproject",
    "description": "Main project development",
    "repositories": [{
        "type": "vcs",
        "url": "ssh://git@my-git-server-url.com/library.git"
    }],
    "require": {
        "library/library": "dev-master"
    }
}

更新库(并将更改推送到存储库后)后,您只需在主开发项目中运行composer update library/library,即可从库中获取所有更改。