iampersistent/config-value-component

v1.3.0 2023-04-10 18:23 UTC

This package is auto-updated.

Last update: 2024-09-10 21:24:02 UTC


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',
    ]
];