同时开发 Composer 库和主项目的最佳实践是什么?
What is the best practice to develop Composer's library and main project simultaneously?
我正在努力了解在主要项目开发和库开发中使用 Git 的最佳实践是什么。我将尝试解释:
我正在同时开发一个项目和一个库。他们都在 GitHub 上。这是我当前的工作流程:
- 在库中进行更改
- 提交并将其推送到 GitHub,在 Packagist 上发布并更新
- 运行
composer update
在主工程中,这样会下载新版本的库
- 使用新的库版本进行测试
那太复杂了,也不对。解决这个问题的方法是什么?我有一个选择:
- 将库定义为本地存储库并将此定义放在主项目的 composer.json 文件中。 但这很奇怪,因为如果我将 composer.json 上传到 GitHub,它将包含本地 repo 定义,这是不正确的。
也许有一些聪明而酷的方法可以解决这个问题,但我不知道。请解释如何做到这一点。提前致谢。
P.S。我正在使用 PhpStorm,也许它有一个选项可以帮助我们解决问题。
如果您经常更新主项目使用的库,您应该考虑将其托管为本地存储库。
您可以使用 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
中获取库中的所有更改。
我正在努力了解在主要项目开发和库开发中使用 Git 的最佳实践是什么。我将尝试解释: 我正在同时开发一个项目和一个库。他们都在 GitHub 上。这是我当前的工作流程:
- 在库中进行更改
- 提交并将其推送到 GitHub,在 Packagist 上发布并更新
- 运行
composer update
在主工程中,这样会下载新版本的库 - 使用新的库版本进行测试
那太复杂了,也不对。解决这个问题的方法是什么?我有一个选择:
- 将库定义为本地存储库并将此定义放在主项目的 composer.json 文件中。 但这很奇怪,因为如果我将 composer.json 上传到 GitHub,它将包含本地 repo 定义,这是不正确的。
也许有一些聪明而酷的方法可以解决这个问题,但我不知道。请解释如何做到这一点。提前致谢。
P.S。我正在使用 PhpStorm,也许它有一个选项可以帮助我们解决问题。
如果您经常更新主项目使用的库,您应该考虑将其托管为本地存储库。
您可以使用 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
中获取库中的所有更改。