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
Pull config from .env values or from Laminas config
Usage
$config = (new GatherConfigValues)($container, 'print');
In the .env file, the first part of the environment name must match the config name (case-insensitive). Each subsequent underscore creates a key in an array of the value.
PRINT_PRINTER=Epson TX-80
would result in
$printConfig = [ 'printer' => 'Epson TX-80', ];
If there is a default key, the case of that key will be used.
// print.config.php return [ 'print' => [ 'printerType' => null, ] ];
.env
PRINT_PRINTER=Epson TX-80
PRINT_PRINTERTYPE=dot-matrix
would result in
$printConfig = [ 'print' => [ 'printer' => 'Epson TX-80', 'printerType' => 'dot-matrix', ] ];
If there are conflicting values between the config files and the .env file, the .env value will be used
// print.config.php return [ 'print' => [ 'printerType' => null, 'speed' => 'fast', ] ];
.env
PRINT_PRINTER=Epson TX-80
PRINT_PRINTERTYPE=dot-matrix
PRINT_SPEED=slow
would result in
$printConfig = [ 'print' => [ 'printer' => 'Epson TX-80', 'printerType' => 'dot-matrix', 'speed' => 'slow', ] ];
Any values in the config that don't have a value in the .env remains as is
// 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
would result in
$printConfig = [ 'print' => [ 'location' => 'Room 1', 'printer' => 'Epson TX-80', 'printerType' => 'dot-matrix', 'speed' => 'slow', ] ];