jasny/application-env

关于应用程序环境变量(APPLICATION_ENV)的逻辑

v1.0.2 2024-09-03 21:48 UTC

This package is auto-updated.

Last update: 2024-09-03 21:59:41 UTC


README

jasny-banner

ApplicationEnv

Build Status Scrutinizer Code Quality Code Coverage Packagist Stable Version Packagist License

关于常见 APPLICATION_ENV 环境变量的逻辑。

检查并处理点分隔的子环境,如 dev.testers.john

安装

composer require jasny/application-env

用法

use Jasny\ApplictionEnv;

$env = new ApplicationEnv(getenv('APPLICATION_ENV') ?? 'dev');

echo "Application environment: ", (string)$env;

检查环境

is 方法检查当前应用程序环境是否与给定的环境匹配,或是否是其子环境。

if ($env->is("dev")) {
   ini_set('display_errors', true);
}

这将匹配 devdev.testers.john,但不匹配 stagingprod.worker

获取级别

array getLevels(int from = 1, ?int to = null, callable $callback = null)

getLevels 方法返回一个包含环境变量级别的数组。从级别 1 开始,从第一个级别开始,而从级别 0 开始将包括空字符串。

to 参数允许限制遍历的深度。默认情况下,完整的应用程序环境是最后一个条目。

可以指定一个 callback,它将在每个级别上被调用。

示例

如果 APPLICATION_ENVdev.testers.john,那么 getLevels() 将产生;

[
  'dev',
  'dev.testers',
  'dev.testers.john'
]

要创建要考虑的配置文件列表,您可能使用

$configFiles = $env->getLevels(
  from: 0,
  callback: fn(string $env) => $env === '' ? "settings.{$env}.yml" : "settings.yml"
);