使用Composer CLI将数据添加到额外属性

时间:2015-11-06 14:12:21

标签: php composer-php command-line-interface

根据composer.json schemaextra属性的文档,允许设置“用于脚本消费的任意额外数据。”

出于脚本编写的目的,如果可以通过命令行将数据添加到extra属性,那就太好了。它已尝试composer config extra.foo bar,但这会产生错误Setting extra.foo does not exist or is not supported by this command

所以我想知道:有没有办法使用Composer CLI将数据添加到extra属性?

更新:已添加对此功能支持的Composer 1.1.0:https://getcomposer.org/doc/03-cli.md#modifying-extra-values 不幸的是,无法添加布尔值或数值,因为每个值都是作为字符串添加的。另请参阅issue #5492 of the Composer project

2 个答案:

答案 0 :(得分:1)

没有办法,原因是这通常与一些非常具体的本地用例绑定,不适用于一般受众。

此处列出了composer config可能影响的所有参数:https://getcomposer.org/doc/06-config.md

如果要将数据添加到“额外”部分,则必须手动编辑或让脚本以其他方式执行此操作。

答案 1 :(得分:1)

从Composer 1.1.0开始,可以使用CLI将 string 值添加到extra属性:

composer config extra.foo "some text"
composer config extra.bar 123
composer config extra.baz true

结果如下:

"extra": {
    "foo": "some text",
    "bar": "123",
    "baz": "true"
}

从Composer 2.0开始,可以使用--json--merge标志在任何JSON值类型中添加值。这包括添加数字和布尔值的可能性:

composer config --json extra.foo '"some text"'
composer config --json extra.bar 123
composer config --json extra.baz true

结果如下:

"extra": {
    "foo": "some text",
    "bar": 123,
    "baz": true
}

documentation of this feature显示了如何从CLI添加JSON对象。