phossa2/env

此包已被放弃,不再维护。未建议替代包。

从shell风格文件加载环境变量的库。

2.0.6 2016-07-04 02:59 UTC

This package is not auto-updated.

Last update: 2020-02-05 04:00:42 UTC


README

请使用 phoole/env 库代替

Build Status Code Quality Code Climate PHP 7 ready HHVM Latest Stable Version License

phossa2/env 是一个从完全兼容bash shell的文件中加载环境变量的库。

它需要PHP 5.4,支持PHP 7.0+和HHVM。它符合 PSR-1PSR-2PSR-4 规范。

安装

通过 composer 工具安装。

composer require "phossa2/env=2.*"

或者将以下行添加到您的 composer.json

{
    "require": {
       "phossa2/env": "2.*"
    }
}

使用方法

  • 将您的环境变量放在文件 .env 中,

    # this is comment line
    BASE_DIR='/home/web'
    
    # reference here
    APP_DIR=${BASE_DIR}/app   # another comment here
  • 在PHP脚本中加载并使用您的env变量

    <?php
    // ...
    $env = new Phossa2\Env\Environment();
    
    # load env
    $env->load(__DIR__ . '/.env');
    
    // use your env
    echo getenv('APP_DIR');

特性

  • 如果不使用像 宽松语法获取当前目录和文件PHP全局变量 这样的扩展特性,则与bash兼容。

  • 支持shell默认值,例如 ${param:-new}${param:=new}

  • 在env文件中可以 source another_env_file

  • 默认情况下,会覆盖任何现有的环境变量。这是bash中的默认行为。

    要禁用覆盖并尊重现有环境变量,

    env->load('./.env', $overload = false);
  • env文件中的宽松语法(与bash不兼容)

    # spaces before and after '=' is allowed. NOT recommended though
    ROOT_DIR = /var/tmp
  • 使用 ${BASH_SOURCE}${BASH_SOURCE%/*}${BASH_SOURCE##*/} 获取当前 路径目录文件名

    # set current file
    MY_FILE=${BASH_SOURCE##*/}
    
    # set root dir to current dir
    ROOT_DIR=${BASH_SOURCE%/*}

    或者使用 ${__PATH__}${__DIR__}${__FILE__},这些与bash脚本不兼容。

  • 支持PHP全局变量如 $_SERVER 等。

    这与shell脚本不兼容,因此不建议使用。

    HOST=${_SERVER.HTTP_HOST}
  • 支持PHP 5.4+、PHP 7.0+、HHVM

  • PHP7支持返回类型声明和参数类型声明。

  • 符合PSR-1、PSR-2、PSR-4规范。

变更日志

请参阅 CHANGELOG 以获取更多信息。

测试

$ composer test

贡献

请参阅 CONTRIBUTE 以获取更多信息。

依赖

  • PHP >= 5.4.0

  • phossa2/shared >= 2.0.21

许可

MIT许可