iampersistent / config-value-component
v1.3.0
2023-04-10 18:23 UTC
Requires
- php: ^8.1
- iampersistent/get-off-my-case: ^1.0
- psr/container: ^1.0 || ^2.0
Requires (Dev)
- codeception/codeception: ^4.0
- codeception/module-asserts: ^1.0.0
- phpspec/prophecy: ~1.0
README
从 .env 文件值或从 Laminas 配置中拉取配置
用法
$config = (new GatherConfigValues)($container, 'print');
在 .env 文件中,环境名称的前一部分必须与配置名称匹配(不区分大小写)。每个随后的下划线都会在值的数组中创建一个键。
PRINT_PRINTER=Epson TX-80
将结果为
$printConfig = [ 'printer' => 'Epson TX-80', ];
如果存在默认键,将使用该键的大小写。
// print.config.php return [ 'print' => [ 'printerType' => null, ] ];
.env
PRINT_PRINTER=Epson TX-80
PRINT_PRINTERTYPE=dot-matrix
将结果为
$printConfig = [ 'print' => [ 'printer' => 'Epson TX-80', 'printerType' => 'dot-matrix', ] ];
如果配置文件和 .env 文件之间存在冲突值,将使用 .env 中的值
// print.config.php return [ 'print' => [ 'printerType' => null, 'speed' => 'fast', ] ];
.env
PRINT_PRINTER=Epson TX-80
PRINT_PRINTERTYPE=dot-matrix
PRINT_SPEED=slow
将结果为
$printConfig = [ 'print' => [ 'printer' => 'Epson TX-80', 'printerType' => 'dot-matrix', 'speed' => 'slow', ] ];
配置中任何未在 .env 中设置值的项将保持原样
// print.config.php return [ 'print' => [ 'location' => 'Room 1', 'printerType' => null, 'speed' => 'fast', ] ];
.env
PRINT_PRINTER=Epson TX-80
PRINT_PRINTERTYPE=dot-matrix
PRINT_SPEED=slow
将结果为
$printConfig = [ 'print' => [ 'location' => 'Room 1', 'printer' => 'Epson TX-80', 'printerType' => 'dot-matrix', 'speed' => 'slow', ] ];