learningbird / lbconf
用于读取和写入JSON配置文件的命令行工具
2.0.1
2016-10-13 15:45 UTC
Requires
Requires (Dev)
- phpunit/phpunit: ^5.4
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" }
文件路径相对于元配置文件的位置。
在read
和write
部分中的文件都将被读取并合并,使用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"