spacetab-io / configuration
PHP微服务的配置模块。
Requires
- php: >=8.1
- psr/log: ^1.1 || ^2.0 || ^3.0
- spacetab-io/obelix: ^1.0
- symfony/console: ^4.3 || ^5.0 || ^6.0
- symfony/yaml: ^4.2 || ^5.0 || ^6.0
Requires (Dev)
- humbug/box: ^3.8
- phpstan/phpstan: ^1.5.4
- phpunit/phpunit: ^9 || ^10
- spacetab-io/logger: ^2.0
- symfony/var-dumper: ^4.2 || ^5.0 || ^6.0
Suggests
- ext-yaml: For fast yaml parsing.
README
支持多个应用程序阶段(如 dev
、prod
或 其他
)并覆盖 默认
阶段的 PHP 配置模块。
安装
composer require spacetab-io/configuration
版本映射
- 版本
4.*
的包需要 PHP >=8.1
- 版本
3.*
的包需要 PHP >=7.4
<=8.0
- 版本
2.*
的包需要 PHP <7.4
使用
默认情况下,配置目录的路径和应用阶段从 /app/configuration
加载,阶段为 local
。
- 简单
<?php use Spacetab\Configuration\Configuration; $conf = new Configuration(); $conf->load(); var_dump($conf->all()); // get all config echo $conf->get('foo.bar'); // get nested key use dot notation echo $conf['foo.bar']; // the same, but use ArrayAccess interface.
支持在 get
方法中使用带星号的点符号语法。您可以在此处了解相关信息:[https://github.com/spacetab-io/obelix-php](https://github.com/spacetab-io/obelix-php)
- 如果需要覆盖默认值,可以在类构造函数中传递两个参数或设置使用设置器。
<?php use Spacetab\Configuration\Configuration; $conf = new Configuration(__DIR__ . '/configuration', 'test'); $conf->load(); $conf->get('key'); // full example on the top
- 如果操作系统有环境变量
CONFIG_PATH
和STAGE
,则包的值将从那里获取。
export CONFIG_PATH=/configuration export STAGE=prod
<?php use Spacetab\Configuration\Configuration; $conf = new Configuration(); $conf->load(); // loaded files from /configuration for prod stage. $conf->get('key'); // full example on the top
- 如果您想查看日志并了解加载过程,可以将应用程序日志传递到以下方法
<?php use Spacetab\Configuration\Configuration; $conf = new Configuration(); $conf->setLogger($monolog); // PSR compatible logger. $conf->load(); $conf->get('key'); // full example on the top
如果您想使用 这个包 进行日志记录
composer require spacetab-io/logger
就是这些。
CLI 工具
此外,您还可以安装简单的 CLI 工具以转储合并后的配置的总结果。有多种方法可以实现
- 作为全局二进制文件安装到
/usr/local/bin
L=/usr/local/bin/st-conf && sudo curl -L https://github.com/spacetab-io/configuration-php/releases/download/2.2.0/st-conf.phar -o $L && sudo chmod +x $L
- 将库作为全局 composer 要求安装
第一步
composer global require spacetab-io/configuration-php
它将被安装到 ~/.composer
目录。
如果您在全局路径中有 ~/.composer/vendor/bin
,您可以尝试运行命令
st-conf help dump
否则,您可以注册该目录
echo 'export PATH=~/.composer/vendor/bin:$PATH' >> ~/.bash_profile source ~/.bash_profile
CLI 使用
Description: Dump loaded configuration Usage: dump [options] [--] [<path> [<stage>]] Arguments: path Configuration directory path stage Configuration $STAGE Options: -l, --inline[=INLINE] The level where you switch to inline YAML [default: 10] -s, --indent[=INDENT] The amount of spaces to use for indentation of nested nodes [default: 2] -d, --debug Debug -h, --help Display this help message -q, --quiet Do not output any message -V, --version Display this application version --ansi Force ANSI output --no-ansi Disable ANSI output -n, --no-interaction Do not ask any interactive question -v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug Help: Example of usage: `st-conf dump`. Options --inline=10 (nesting level) and --indent=2. If [path] and [stage] arguments not passed will be used global env variables CONFIG_PATH and STAGE.
依赖
- >= PHP 8.1
- Composer 用于安装包
许可证
MIT 许可证
版权所有 © 2022 spacetab.io, Inc. [https://spacetab.io](https://spacetab.io)
在此,任何人免费获得本软件及其相关文档副本(“软件”)的副本,均可自由使用该软件,不受限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向获得软件的人提供使用该软件的权利,前提是遵守以下条件
上述版权声明和本许可声明应包含在所有副本或实质性部分的软件中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定目的适用性和非侵权性保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论此类索赔、损害或其他责任是基于合同、侵权或其他方式,是否因软件或其使用或其他方式而产生。