codervio/envmanager

Codervio 环境管理器

1.7 2018-03-07 23:55 UTC

This package is not auto-updated.

Last update: 2024-09-15 05:18:22 UTC


README

Join the chat at https://gitter.im/Codervio/Envmanager

Latest Version on Packagist Build Status Total Downloads

环境管理器 解析,将环境文件中的点环境变量填充到全局 $_ENV 变量、Apache 和 getenv 函数中。它支持检查变量和获取系统变量。

它提供了编辑环境文件和操作它们的工具。

Screenshot

捐赠

由于我是100%独立工作,没有其他组织的帮助,我可以接受任何金额的付款来改进、开发并继续构建框架的原始理念。

您可以通过 PayPal 支付任何金额:https://www.paypal.me/codervio?locale.x=en_US

安装

  1. 通过 ComposerPackagist 上安装
  2. 使用 Git 克隆组件安装

先决条件

PHP版本要求: PHP >7.0

PHP 扩展: mbstring

使用 use Codervio\Environment\EnvParser 声明来解析点 env 文件。

使用 use Codervio\Environment\EnvEditor 声明来编辑和管理点 env 文件。

A [requirements] - Requirements and auto detect encodings 脚本可以自动检查 mbstring 扩展并自动检测编码类型。

用法

使用函数 getenv() 或直接使用实例,获取环境变量并将其加载到全局超变量 $_ENV 的示例

如果文件 example.env 包含以下数据

FOO=bar

加载实例后,可以获取一个变量

use Codervio\Envmanager\Envparser;

$envparser = new Envparser('.env');
$envparser->load();
$envparser->run();

$result = $parser->getValue('FOO');
var_dump($result);

返回的结果将自动检测获取环境变量的类型

(string) 'bar'

或使用全局环境变量获取结果

    echo apache_getenv('FOO')
    echo getenv('FOO')
    echo $_ENV('FOO')

返回结果

结果按以下顺序返回

  • 如果 Apache 服务配置为仅使用 Apache 环境,则使用 apache_getenv()
  • 使用大多数 Unix 系统支持的 getenv()
  • 使用 PHP 原生超全局 $_ENV 函数

它将自动解析为 PHP 环境函数和超全局,因此您可以通过以下方式访问

  • 超全局函数 $_ENV
  • 超全局 $_SERVER 变量
  • 如果系统启用,则使用 getenv()
  • 如果 Apache 服务启用,则使用 apache_getenv()

变更日志

核心状态

PHP版本高于 7.0。质量保证:提供了单元测试

目录

Envparser

常见环境变量

  • 要加载简单的 ENV 变量,请使用 [example]
FOO=bar
VAREMPTY=
FOO1=foo1
WITHSPACES="with spaces"

列出示例环境变量

  • 示例环境变量的列表:[lists]

注释

  • 编写注释:[comments]
# comment
# a comment #comment
## A main comment ##
FOO=bar # a comment

将注释解析为变量(仅限开发,不建议使用)

可以使用以下方式解析注释变量

 new Envparser('main.env', true);

注释中的变量可以是可见的

 #COM1=BAR1

使用命令

 $envparser->getAllValues(); # to get all values
 $envparser->getValue('#COM1'); # to get commented key

它返回数组并保留 # 标记

  ["#COM1"]=>
  string(4) "BAR1"

或直接

 $envparser->getValue('#COM1');

将解析一个变量

  string(4) "BAR1"

解析 Apache 环境变量或 Unix exports 环境变量

  • 解析 export 或 setenv 变量:[envexports]
setenv FOO1=value # general csh case
export FOO2=value 
SetEnv FOO3=value # Apache camel case

获取系统变量

可以获取所有系统变量

use Codervio\Envmanager\Envparser;

$envparser = new Envparser();
$envparser->load();
$envparser->run();

var_dump($envparser->getSystemVars());
  • 要获取单个变量或仅检查变量是否存在,请参阅 [getSystemVars] 和 [checkSystemVar()]。
  • 查看环境变量中值的验证类型:[required()]
  • 要从一个特定变量的文件中获取注释,请使用:[getComment()]

参考

  • [requirements] - 需求和自动检测编码
  • [setEncoding()] - 手动指定编码
  • [getEncoding()] - 从文件中检测编码类型
  • [checkSuperGlobalsSet()] - 检查是否设置了 $_ENV 的 set 或 get 环境指令
  • [Envparser()] - 构造解析器构造函数
  • [load()] - 加载环境 .env 文件或包含 .env 文件的文件夹
  • [getComment()] - 从 .env 文件中的变量获取注释
  • [getValue()] - 从系统环境变量和解析变量中获取值
  • [getAllValues()] - 以数组形式返回内部解析的环境变量
  • [getSystemVars()] - 获取所有或单个系统变量
  • [checkSystemVar()]- 如果系统变量存在,返回布尔值
  • [setStrictBool()] - 将非标准值(如 'y/n' 或 '1/0')解析为布尔值
  • [required()] - 变量验证器和变量验证器的实例

EnvEditor

  • [Enveditor] - 用于创建环境文件的实例环境
  • [Help] - 代码中的常见帮助和问题