用于读取和写入JSON配置文件的命令行工具

2.0.1 2016-10-13 15:45 UTC

This package is not auto-updated.

Last update: 2024-09-28 20:25:15 UTC


README

用于读取和写入JSON配置文件的命令行工具

安装

使用composer安装

$ composer require learningbird/lbconf

设置

在项目根目录创建一个.lbconf元配置文件

示例

{
    "read": [
        "configurations/default.json"
    ],
    "write": "configurations/override.json"
}

文件路径相对于元配置文件的位置。

readwrite部分中的文件都将被读取并合并,使用set命令时,将写入write部分的文件。

动态配置

对于更动态的配置,可以使用.lbconf.php文件。此文件必须返回一个数组,其格式与.lbconf JSON文件相同。

return [
    'read'  => glob('configurations/default/*.json),
    'write' => 'configurations/override.json',
];

用法

一般用法模式是

lbconf <action> <key> [value]

其中<action>可以是以下之一:-g|--get-s|--set-d|--del-k|--keys。如果只提供了一个键,则假定操作为--get,并且可以省略。如果提供了一个键和值,则假定操作为--set,并且可以省略。

示例

$ lbconf --get database.host # Outputs "localhost"
$ lbconf database.host # Identical to above

$ lbconf --set database.host 127.0.0.1 # Sets database.host to  "127.0.0.1"
$ lbconf database.host 127.0.0.1 # Identical to above

-g|--get

检索配置值。

$ lbconf --get database
$ lbconf -g database # Short form
$ lbconf database # Implicit "--get" form

# Output:
# {
#     "host": "localhost,
#     "port": 3306,
#     "username": "prod-user"
# }

通过传递点分隔的键遍历对象

$ lbconf --get database.host # Outputs "localhost"

-s|--set

设置配置值。值将被写入.lbconf元配置文件中指定的write键所指定的文件。

$ lbconf --set database.username dev-user
$ lbconf -s database.username dev-user # Short form
$ lbconf database.username dev-user # Implicit "--set" form

类型将被推断,除非明确指定

$ lbconf --set database.port 3306 # Value is cast to int
$ lbconf --set database.port 3306 --type string # Value remains as string

-d|--del

删除覆盖配置值

$ lbconf --del database.username
$ lbconf -d database.username # Short form

请注意,键必须在write文件中存在,才能允许删除。无法删除仅在read文件中存在的键。唯一的替代方案是将它设置为null或类似值。

-k|--keys

检索配置值键

$ lbconf --keys database
$ lbconf -k database # Short form

# Output:
# [
#     "host",
#     "port",
#     "username"
# ]

其他

以破折号开头的键

默认情况下,以-开头的命令参数被解释为选项。为了避免这种行为,如果配置键以-开头,您可以使用--来分隔命令选项和参数

$ lbconf --get -- --get # Outputs value for key "--get"
$ lbconf --set -- --key value # Sets the value for "--key" to "value"