cekurte/environment

一个从环境变量获取值并将其转换为PHP数据类型的库

v0.3.0 2016-05-27 15:00 UTC

This package is auto-updated.

Last update: 2024-09-16 02:09:50 UTC


README

Build Status Code Climate Coverage Status Latest Stable Version License SensioLabsInsight

  • 一个简单的库(所有方法都由php单元测试覆盖),可增强您环境变量的功能,为这个项目做出贡献

安装

  • 此软件包可在 Packagist 上找到。
  • 源代码文件与 PSR-2 兼容。
  • 自动加载与 PSR-4 兼容。
composer require cekurte/environment

文档

使用 putenv("KEY=VALUE") 或直接将环境变量放入OS来设置您的变量到PHP。此外,您可以使用此库执行此任务 vlucas/phpdotenv(我们推荐您使用此库)。

现在,使用我们的库获取值并增强您环境变量的功能。

<?php

use function Cekurte\Environment\env;        // To get values using a function (requires php >=5.6)
use Cekurte\Environment\Environment;         // To get values using a static class
use Cekurte\Environment\EnvironmentVariable; // To get values using a object

// ...

$data = Environment::get("YOUR_ENVIRONMENT_KEY");

// Getting default data if your environment variable not exists or not is loaded.
$data = Environment::get("APP_DEBUG", true);

// ...
// Other ways to get the values of environment variables.

// Using a object...
$data = (new EnvironmentVariable())->get("YOUR_ENVIRONMENT_KEY", "defaultValue");

// Using a function... @deprecated
$data = env("YOUR_ENVIRONMENT_KEY", "defaultValue");

// Note that if the second parameter is omitted
// then the return value (if your key not exists) will be null.

// A new way was added to you get all environment variables as an array.
$data = Environment::getAll();

// You can use a filter to get only the environment variables that you need.
$data = Environment::getAll([
    new Cekurte\Environment\Filter\KeyRegexFilter('/PROCESSOR/'),
    new Cekurte\Environment\Filter\ValueRegexFilter('/6/'),
]);

// The method above will get all environment variables, where:
// the environment variable name has the word PROCESSOR AND
// the environment variable value has the number six.

// And you can develop your own filters, contribute with this project!

此命令将获取环境变量的值,并将值转换为相应的PHP数据类型。

实际上有以下资源可用于处理您的环境变量

示例

在本节中,您可以查看所有资源类型的示例。

ArrayResource

数组资源将环境变量中的字符串值解析为PHP数组数据类型。假设存在一个名为 "ENV_ARRAY" 的环境变量,其值如下 [1,2,3,"key"=>"value"]

export ENV_ARRAY=[1,2,3,"key"=>"value"]

当您使用我们的库读取此环境变量时,它将使用 ArrayResource 类将数据转换为正确的数据类型(在这种情况下为数组)。

<?php

// array(4) {
//   [0]=> int(1)
//   [1]=> int(2)
//   [2]=> int(3)
//   ["key"]=> string(5) "value"
// }
var_dump(Cekurte\Environment\Environment::get("ENV_ARRAY"));

BooleanResource

布尔资源将环境变量中的字符串值解析为PHP布尔数据类型。假设存在一个名为 "ENV_BOOL" 的环境变量,其值如下 true

export ENV_BOOL=true

当您使用我们的库读取此环境变量时,它将使用 BooleanResource 类将数据转换为正确的数据类型(在这种情况下为布尔值)。

<?php

// bool(true)
var_dump(Cekurte\Environment\Environment::get("ENV_BOOL"));

JsonResource

JSON资源将环境变量中的字符串值解析为PHP数组数据类型。假设存在一个名为 "ENV_JSON" 的环境变量,其值如下 {"key":"value"}

export ENV_JSON={"key":"value"}

当您使用我们的库读取此环境变量时,它将使用 JsonResource 类将数据转换为正确的数据类型(在这种情况下为数组)。

<?php

// array(1) {
//   ["key"]=> string(5) "value"
// }
var_dump(Cekurte\Environment\Environment::get("ENV_JSON"));

NullResource

空资源将环境变量中的字符串值解析为PHP空数据类型。假设存在一个名为 "ENV_NULL" 的环境变量,其值如下 null

export ENV_NULL=null

当您使用我们的库读取此环境变量时,它将使用 NullResource 类将数据转换为正确的数据类型(在这种情况下为null)。

<?php

// NULL
var_dump(Cekurte\Environment\Environment::get("ENV_NULL"));

NumericResource

数字资源解析从环境变量中获取的字符串值并将其转换为PHP数据类型(整数或浮点数)。假设存在一个名为"ENV_NUMERIC"的环境变量,其值为以下内容:123

export ENV_NUMERIC=123

当您使用我们的库读取此环境变量时,它将使用NumericResource类将数据转换为正确的数据类型(在这种情况下为int)。

<?php

// int(123)
var_dump(Cekurte\Environment\Environment::get("ENV_NUMERIC"));

UnknownResource

未知资源不解析环境变量的值,用于在所有资源类型都无法解析数据时获取值。假设存在一个名为"ENV_UNKNOWN"的环境变量,其值为以下内容:"unknown"

export ENV_UNKNOWN="unknown"

当您使用我们的库读取此环境变量时,它将使用UnknownResource类获取原始值。

<?php

// string(7) "unknown"
var_dump(Cekurte\Environment\Environment::get("ENV_UNKNOWN"));

如果您喜欢这个库,请给我一个star =)

贡献

  1. 给我一个星标=)
  2. Fork它
  3. 创建您的功能分支(git checkout -b my-new-feature
  4. 进行更改
  5. 运行测试,如果需要为自己的代码添加新的测试(vendor/bin/phpunit
  6. 提交您的更改(git commit -am 'Added some feature'
  7. 推送到分支(git push origin my-new-feature
  8. 创建新的Pull Request