opxcore/config-environment

OpxCore 配置环境加载器。

1.0.6 2021-02-17 13:03 UTC

This package is auto-updated.

Last update: 2024-09-17 21:08:35 UTC


README

Build Status Coverage Status Latest Stable Version Total Downloads License

安装

composer require opxcore/config-environment

重要通知

所有环境变量都存储在静态属性中,因此任何环境实例都将有权访问相同的环境变量集。

用法

use OpxCore\Config\Environment;

$environment = new Environment($path);

其中 $path 是放置环境文件的目录。

加载环境

要从文件中加载环境变量,请调用 $environment->load($filename),其中 $filename 是文件名。 所有变量都将存储在本地,不会影响 $_ENV, $_SERVER 等等。

其他参数是 load($filename, $safe, $silent)。如果 $safe 设置为 true,则如果变量已存在,则不会覆盖它们。如果 $silent 设置为 true,则不会抛出异常。如果环境文件成功处理,函数返回 true,如果出现任何错误,则返回 false

读取环境变量

$environment->get($key, $default) 如果设置了环境变量,则返回环境变量,否则返回分配给默认值或传递给默认值的可调用对象的返回值。

$environment->has($key) 如果设置了环境变量,则返回 true,否则返回 false

操作

$environment->set($key, $value, $safe) 将值设置为环境。如果 $safe 设置为 true,则如果变量已存在,则不会覆盖它们。传递给字符串类型的值将被解析(见下文),其他值将按原样设置。

$environment->unset($key) 从环境中删除变量。

格式

环境文件中的每一行必须包含一个值,由变量名和用 = 符号分隔的值组成。换句话说,= 符号之前的行的一部分将用作变量名,另一部分将是变量的值。

例如

APP_NAME=My awesome application

每个值将按以下规则解析

字符串

每个引用的值将被转换为非引用字符串。

DB_CONNECTION="mysql"
DB_HOST="127.0.0.1"

调用 $environment->get('DB_HOST') 的结果将是 '127.0.0.1'

布尔值

如果值是 truefalse,则将其转换为布尔类型。

CACHE_ENABLE=true
304_RESPONSE=false

空值

空值将被设置为 null

CACHE_DRIVER=null

数组

数组必须以 [ 开始并以 ] 结束。项目必须用逗号分隔。每个项目都将按此规则解析。 不支持嵌套数组

BROADCAST_DRIVER=[log,telegram]

数字

如果值表示任何数字格式,则将其转换为整数或浮点数。

COUNT=42
MULTIPLIER=1.05
FLOAT=0.15E-10

如果解析器无法识别值的类型,则返回原始字符串。

APP_KEY=base64:0vqkPYSbwPm3MOzdxQJ76Ps6pouZRjN5xPx3b+dm628=

调用 $environment->get('APP_KEY') 的结果将是 'base64:0vqkPYSbwPm3MOzdxQJ76Ps6pouZRjN5xPx3b+dm628='