cekurte / environment
一个从环境变量获取值并将其转换为PHP数据类型的库
Requires
- php: >=5.4
Requires (Dev)
- cekurte/tdd: ^1.0.1
- phpunit/phpunit: ^4.8
- sensiolabs/security-checker: ^3.0
- squizlabs/php_codesniffer: ^2.3
README
- 一个简单的库(所有方法都由php单元测试覆盖),可增强您环境变量的功能,为这个项目做出贡献!
安装
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 =)。
贡献
- 给我一个星标=)
- Fork它
- 创建您的功能分支(
git checkout -b my-new-feature
) - 进行更改
- 运行测试,如果需要为自己的代码添加新的测试(
vendor/bin/phpunit
) - 提交您的更改(
git commit -am 'Added some feature'
) - 推送到分支(
git push origin my-new-feature
) - 创建新的Pull Request