yoanm / composer-config-manager
此包已被废弃且不再维护。未建议替代包。
用于管理 composer 配置文件的命令行工具
2.1.1
2017-05-04 10:49 UTC
Requires
- php: >=5.5
- symfony/config: ^3.2
- symfony/console: ~3.0
- symfony/dependency-injection: ^3.2
- symfony/filesystem: ^3.2
- symfony/finder: ^3.2
- symfony/serializer: ^3.2
Requires (Dev)
- behat/behat: ~3.0
- phpunit/phpunit: ~4.0
- squizlabs/php_codesniffer: 2.*
- yoanm/behat-utils-extension: ^0.7.0
README
管理 composer 配置文件的命令
安装
composer global require yoanm/composer-config-manager
在您的 .bashrc
文件中添加以下内容
export PATH=~/.composer/vendor/bin:$PATH
如何使用
只需输入以下内容
composercm create "vendor/package-name" path/to/repository/directory [OPTIONS]
composercm update path/to/repository/directory [OPTIONS]
如果您从仓库目录启动命令,您可以直接使用
composercm create "vendor/package-name" [OPTIONS]
composercm update [OPTIONS]
- 输入
composercm list
列出所有可用命令 - 输入
composercm help COMMAND_NAME
或composercm COMMAND_NAME -h
以显示特定命令的帮助信息
以下为有关命令行选项的更多信息
composercm update
命令将应用当前 composer.json 文件中的给定值
创建
- 有
--template
选项,给定的值将应用于模板 - 值将按照默认顺序附加
更新
- 有
--template
选项,以下是如何管理模板的说明 - 键的顺序保持与旧配置文件相同。新键将按默认顺序附加
模板
- 可以提供多个模板。更新工作流程如下
-
1 - 模板之间的比较
- 如果提供了多个模板,第一个模板将使用第二个模板中的值进行更新
- 结果配置将使用第三个模板进行更新
...
- 结果配置将使用 X 模板进行更新
-
2 - 结果配置与现有配置进行比较
- 对于更新命令,如果在至少一个模板已给出的情况下
-
3 - 结果配置与命令行值进行比较
- 如果只使用模板,则可以跳过
-
键的顺序
- 默认键顺序与 composer 文档网站中定义的顺序相同
- 可以使用
--template
选项定义最终配置的键顺序。例如,定义一个名为key_order.json
的模板文件,其内容如下:
{ "name": null, "type": null, "license": null, "version": null, "description": null, "keywords": [], "authors": {}, "provide": {}, "suggest": {}, "support": {}, "autoload": {}, "autoload-dev": {}, "require": {}, "require-dev": {}, "scripts": {} }
然后使用以下命令
composercm [create|update] [ARGS] [OPTIONS] --template key_order.json
结果文件将具有与 key_order.json
文件中相同的键顺序。所有键都可以添加到 key_order.json
中,如果没有为键提供值,则键不会出现在最终文件中。
如果您还想提供一个带有默认值的模板,请使用以下内容
composercm [create|update] [ARGS] [OPTIONS] --template key_order.json --template default_values.json [--template another.json]
管理的属性
以下属性可以使用命令行选项定义
- 包名
- 包类型
- 许可证
- 版本
- 描述
- 关键词 允许多个
- 作者 允许多个
- 提供的包 许多允许
- 建议的包 许多允许
- 支持 许多允许
- PSR-0 / PSR-4 自动加载 许多允许
- PSR-0 / PSR-4 自动加载 dev 许多允许
- 必需的包 许多允许
- 必需的开发包 许多允许
- 脚本
所有其他属性都可以在模板中定义,并将以默认方式管理(可能对于复杂嵌套值会产生意外的合并)
完整的 composer 配置
{ "name": "vendor/package-name", "type": "library", "license": "LICENSE_TYPE", "version": "X.Y.Z", "description": "package description", "keywords": ["KEYWORD1", "KEYWORD2"], "authors": [ { "name": "name1", "email": "email1", "role": "role1" }, { "name": "name2", "email": "email2", "role": "role2" } ], "provide": { "package1": "~x.y", "package2": "x.y.z", }, "suggest": { "package1": "Description 1", "package2": "Description 2", }, "support": { "type1": "url1" }, "autoload": { "psr-0": { "\\RootNamespace\\SubNamespace": "path" } }, "autoload-dev": { "psr-4": { "\\RootNamespace\\SubNamespace\\": "path" } }, "require": { "requirement1": ">=x.y" }, "require-dev": { "requirement1": ">=x.y" }, "scripts": { "script-1": [ "command_1", "command_2" ], "script-2": [ "command_1", "command_2" ], } }
贡献
查看 贡献说明