xiian / composer-repo-tool
轻松管理您的 composer 设置中的自定义仓库。
1.0.2
2022-09-09 15:09 UTC
Requires
- php: ^5.6 || ^7.0
- pds/skeleton: ^1.0
- symfony/console: ^3.0
- symfony/process: ^3.2
Requires (Dev)
- mikey179/vfsstream: ^1.6
- mockery/mockery: ^0.9.9
- phpunit/phpunit: ^5.0
This package is auto-updated.
Last update: 2024-09-09 19:16:42 UTC
README
管理 composer.json 中定义的仓库
当前功能仅限于将类型为 git 的 github 仓库转换为类型 vcs(这使 composer 能够下载存档分发而不是每次都克隆)。
它还非常符合我编写时的使用场景,所以效果可能会有所不同,欢迎提交 pull request。
安装
如果你在考虑使用这个工具,那么你已经熟悉 composer。它非常标准。
$ composer require --dev xiian/composer-repo-tool
这将安装 ./vendor/bin/composer-repo-tool 以在项目中使用。
你也可以全局安装
$ composer global require --dev xiian/composer-repo-tool
这将安装到 $COMPOSER_HOME/vendor/bin/,它应该已经包含在 $PATH 中。
使用方法
更新单个包的仓库
$ composer-repo-tool update $VENDOR/$PACKAGE
更新所有仓库
$ composer-repo-tool update:all
您还可以传递一个 --dry-run 标志来查看工具 会 做什么,而实际上不执行任何操作。
内部机制
对于每个提供的包,update 命令将执行以下步骤
- 重写给定包的
composer.json中的repositories条目- 使用
vcs而不是git - 将 URL 从
git@$GITHUB_URL:$USER/$REPO.git转换为https://$GITHUB_URL/$USER/$REPO.git
- 使用
- 实际从
vendor/目录中删除包 - 使用适当的参数运行
composer update以切换到使用dist而不是source - 对
composer.lock和composer.json文件执行 git 提交。 (我告诉你这是有偏见的)
update:all 命令将为每个未在 composer.lock 文件中与 dist 相关的已安装包执行上述步骤。
待办事项
- 解耦源代码管理。我喜欢在每个包更新后执行任务(以实现原子性),但不是每个人都想要相同的东西。
- 批量模式。
update:all比较慢,因为它为每个包执行完整的更新周期。如果不考虑原子性,所有这些更新可以一起完成,而composer update只需要运行一次,这将大大加快速度。 - 更直接地与
composer集成。使用composer/composer的内部机制可以通过跳过一些可能冗余的composer update步骤来加快速度。