一个简单的PHP库,用于获取(或要求)环境变量,设计用于更智能地处理true、false和null。如果需要,可以将环境变量的值自动拆分为数组。

3.2.0 2024-07-17 13:16 UTC

This package is auto-updated.

Last update: 2024-09-02 18:33:17 UTC


README

一个简单的PHP库,用于获取(或要求)环境变量,设计用于更智能地处理 truefalsenull。如果需要,可以将环境变量的值自动拆分为数组。

构建状态

Unit Tests

设置

  1. 克隆此仓库。
  2. local.env.dist 复制到 local.env 并根据需要更新GitHub.com令牌。
  3. 运行 make test 以安装依赖项并运行PHPUnit测试。

Makefile脚本

有一个Makefile用于简化常见任务。

  • make test - 执行 composer install 并运行phpunit测试

Sil/PhpEnv命名空间中的类

  1. Env: use Sil\PhpEnv\Env;
  2. EnvVarNotFoundException: use Sil\PhpEnv\EnvVarNotFoundException;

Env 函数摘要

  1. get - public static function get($varname, $default = null)

    • 搜索本地环境中的 $varname 并返回相应的值字符串
    • 如果 $varname 未设置或值为空(只有空白),则 get 返回 $default 参数
    • 如果与 $varname 对应的值字符串为 'true'、'false' 或 'null',则 get 分别返回 php 的 truefalsenull
    • 注意:任何包含 'true' 的值字符串(无论大小写和/或前导/尾随空白)都将返回 php 的 true
      falsenull 的处理方式类似。其他值字符串将删除前导/尾随空白。
  2. getString - public static function getString($varname, $default = null): ?string

    • 搜索本地环境中的 $varname 并返回相应的修剪后的值字符串
    • 如果 $varname 未设置或值为空(只有空白),则 getString 返回 $default 参数
  3. getBoolean - public static function getBoolean($varname, $default = null): ?bool

    • 搜索本地环境中的 $varname 并返回相应的布尔值字符串
    • 如果 $varname 未设置或值为空(只有空白),则 getBoolean 返回 $default 参数
    • 如果与 $varname 对应的值字符串为 'true'、'false' 或 'null',则 getBoolean 分别返回 php 的 truefalsenull
    • 如果值不是布尔值,则 getBoolean 返回 $default 参数
    • 注意:任何包含 'true' 的值字符串(无论大小写和/或前导/尾随空白)都将返回 php 的 truefalsenull 的处理方式类似。
  4. getArray - public static function getArray($varname, array $default = [])

    • 搜索本地环境中的 $varname 并返回以逗号分隔的元素作为 php 数组的值字符串
    • 如果 $varname 未设置或值为空(只有空白),则 getArray 返回 $default 参数,它必须是一个数组
    • 如果 $default 不是一个数组,则抛出 TypeError 异常
  5. requireEnv - public static function requireEnv($varname)

    • 搜索本地环境中的 $varname 并返回相应的值字符串
    • 如果 $varname 未设置或值为空(仅空白),则抛出 EnvVarNotFoundException
    • 'true'、'false' 和 'null' 的处理与 get() 相同
  6. requireArray - public static function requireArray($varname)

    • 搜索本地环境中的 $varname 并返回以逗号分隔的元素作为 php 数组的值字符串
    • 如果 $varname 未设置或值为空(仅空白),则抛出 EnvVarNotFoundException

EnvVarNotFoundException

class EnvVarNotFoundException extends \Exception

EnvVarNotFoundExceptionrequireEnv()requireArray() 抛出,当 $varname 在本地环境或相应的值字符串中找不到(仅空白)时

Env 示例函数调用

假设这个 local.env 文件

EMPTY=
SPACES=      
WHITESPACE= Some whitespace    
FALSE=False
TRUE=TRUE
NULL=null
LOWERCASE=abc123
UPPERCASE=ABC123
ARRAY0=
ARRAY1=one
ARRAY=one,two,,three

示例函数调用和结果

  • get - public static function get($varname, $default = null)

    1. Env::get('NOTFOUND') - 返回 null
    2. Env::get('NOTFOUND', 'bad data') - 返回 'bad data'
    3. Env::get('EMPTY') - 返回 ''
    4. Env::get('SPACES') - 返回 ''
    5. Env::get('WHITESPACE') - 返回 'Some whitespace'
    6. Env::get('FALSE') - 返回 false
    7. Env::get('TRUE') - 返回 true
    8. Env::get('NULL') - 返回 null
    9. Env::get('LOWERCASE') - 返回 'abc123'
    10. Env::get('UPPERCASE') - 返回 'ABC123'
  • requireEnv - public static function requireEnv($varname)

    1. Env::requireEnv('NOTFOUND') - 抛出 EnvVarNotFoundException
    2. Env::requireEnv('EMPTY') - 抛出 EnvVarNotFoundException
    3. Env::requireEnv('WHITESPACE') - 返回 'Some whitespace'
    4. Env::requireEnv('FALSE') - 返回 false
    5. Env::requireEnv('LOWERCASE') - 返回 'abc123'
  • getArray - public static function getArray($varname, array $default = [])

    1. Env::getArray('NOTFOUND') - 返回 []
    2. Env::getArray('NOTFOUND', ['one', 'two']) - 返回 ['one', 'two']
    3. Env::getArray('NOTFOUND', 'one,two,three') - 抛出 TypeError 异常
    4. Env::getArray('ARRAY0') - 返回 ['']
    5. Env::getArray('ARRAY1') - 返回 ['one']
    6. Env::getArray('ARRAY') - 返回 ['one', 'two', '', 'three']
  • requireArray - public static function requireArray($varname)

    1. Env::requireArray('NOTFOUND') - 抛出 EnvVarNotFoundException
    2. Env::requireArray('EMPTY') - 抛出 EnvVarNotFoundException
    3. Env::requireArray('ARRAY1') - 返回 ['one']
    4. Env::requireArray('ARRAY') - 返回 ['one', 'two', '', 'three']