wfs/custom-environment-variables

基于环境变量的数组自定义器

0.0.1 2019-04-11 16:15 UTC

This package is auto-updated.

Last update: 2024-09-12 04:38:28 UTC


README

CustomEnvironmentVariables 受 node-config自定义环境变量 功能的启发。

Scrutinizer Code Quality Code Coverage

需求

PHP 7.1+

安装

$ composer require wfs/custom-environment-variables

用法

示例代码 usage.php 如下:

<?php
require __DIR__ . '/vendor/autoload.php';

use Wfs\CustomEnvironmentVariables\Customizer;

$customizer = new Customizer([
    'employee' => [
        'name' => 'NAME',
        'age' => 'AGE',
    ]
]);

$target = [
    'employee' => [
        'name' => 'alice',
        'age' => '10',
    ]
];

$customized = $customizer->customize($target);

echo("name: {$customized['employee']['name']}" . PHP_EOL);
echo("age: {$customized['employee']['age']}" . PHP_EOL);

如果您未设置任何环境变量,usage.php 的结果是:

$ php usage.php
name: alice
age: 10

如果您设置了 NAMEusage.php 的结果是:

$ export NAME=bob
$ php usage.php
name: bob
age: 10

如果您设置了 NAMEAGEusage.php 的结果是:

$ export NAME=bob
$ export AGE=20
$ php usage.php
name: bob
age: 20

您将使用 CustomEnvironmentVariablesConfig

示例代码 config.php 如下:

<?php
require __DIR__ . '/vendor/autoload.php';

use Wfs\CustomEnvironmentVariables\Customizer;
use Noodlehaus\Config;
use Noodlehaus\Parser\Yaml;

$customizer = new Customizer([
    'employee' => [
        'name' => 'NAME',
        'age' => 'AGE',
    ]
]);

$target = new Config(<<<CONF
employee:
  name: alice
  age: '10' # must be string
CONF
, new Yaml, true);

echo("name: {$target['employee']['name']}" . PHP_EOL);
echo("age: {$target['employee']['age']}" . PHP_EOL);

$customized = $customizer->customize($target);

echo("name: {$customized['employee']['name']}" . PHP_EOL);
echo("age: {$customized['employee']['age']}" . PHP_EOL);

结果是:

$ export NAME=bob
$ export AGE=20
$ php config.php
name: alice
age: 10
name: bob
age: 20