geerthauwaerts / now-env

将 `now.json` 变量加载到您的开发环境中。

安装: 4

依赖项: 0

建议者: 0

安全: 0

星标: 1

关注者: 1

分支: 0

开放问题: 2

语言:Shell

1.0.0 2018-12-06 20:31 UTC

This package is auto-updated.

Last update: 2024-09-13 20:30:54 UTC


README

now.json 变量加载到您的开发环境中。

借助此包,您可以轻松地在开发中使用 Now 环境变量。

如果您已经使用 now.json 文件,则 env 子属性将自动分配给 $_ENV$_SERVERgetenv()

当在 Now 实例中运行时,此包完全不执行任何操作。

Build Status

安装

使用 composer 添加库

composer require geerthauwaerts/now-env

用法

env 属性添加到您的 now.json 文件中,并使用以下方式在您的应用程序中加载变量:

use NowEnv\NowEnv;

$nowenv = new NowEnv(__DIR__);
$nowenv->load();

可选地,您可以将文件名作为第二个参数传入,如果您想使用除 now.json 之外的文件。

use NowEnv\NowEnv;

$nowenv = new NowEnv(__DIR__, 'now-secrets.json');
$nowenv->load();

现在,所有定义的变量都可以通过 getenv 方法访问,并在 $_ENV$_SERVER 超全局变量中可用。

$example = getenv('EXAMPLE');
$example = $_ENV['EXAMPLE'];
$example = $_SERVER['EXAMPLE'];

不可变性

默认情况下,NowEnv 不会覆盖环境中已设置的现有环境变量。

如果您想使 NowEnv 覆盖现有环境变量,请使用 overload() 而不是 load()

use NowEnv\NowEnv;

$nowenv = new NowEnv(__DIR__);
$nowenv->overload();

要求设置变量

您可以通过传递单个字符串来要求特定环境变量被定义

$nowenv->required('EXAMPLE');

或字符串数组

$nowenv->required(['EXAMPLE1', 'EXAMPLE2', 'EXAMPLE3']);

如果缺少任何环境变量,NowEnv 将抛出类似于以下所示的 RuntimeException 异常

One or more environment variables failed assertions: EXAMPLE is missing

空变量

除了要求变量设置之外,您还可能需要确保变量不为空

$nowenv->required('EXAMPLE')->notEmpty();

如果环境变量为空,您将得到异常

One or more environment variables failed assertions: EXAMPLE is empty

整数变量

您可能还需要确保变量是整数类型。您可以这样做:

$nowenv->required('EXAMPLE')->isInteger();

如果环境变量不是整数,您将得到异常

One or more environment variables failed assertions: EXAMPLE is not an integer

布尔变量

您可能需要确保变量为布尔形式。您可以这样做:

$nowenv->required('EXAMPLE')->isBoolean();

如果环境变量不是布尔值,您将得到异常

One or more environment variables failed assertions: EXAMPLE is not a boolean

允许的值

还可以定义一组环境变量应具有的值。这在代码仅支持少数选项或驱动程序的情况下非常有用。

$nowenv->required('EXAMPLE')->allowedValues(['VALUE1', 'VALUE2']);

如果环境变量不在此允许值列表中,您将得到类似的异常

One or more environment variables failed assertions: EXAMPLE is not an allowed value

协作

GitHub 仓库用于跟踪所有错误和功能请求;我更喜欢通过 GitHib 和 Twitter 进行工作。

如果您有补丁要贡献

  • 在 GitHub 上分叉此存储库。
  • 为您的补丁集创建一个功能分支。
  • 将您的更改提交到 Git 并推送到 GitHub。
  • 提交一个拉取请求。

随时在 Twitter 上向 @GeertHauwaerts 喊话 :)

捐赠

如果您喜欢这个项目并且想支持开发,请考虑捐赠;所有捐赠都将非常感激。

  • Coinbase Commerce: BTC, BCH, DAI, ETH, LTC, USDC
  • BTC: bc1q654z85zv6sujsjqk750sf4j4eahcckdtq0cqrp
  • ETH: 0x4d38b4EB5b0726Dc6bd5770F69348e7472954b41
  • LTC: MBEaP6e4zwro6oNP54yjfC29fVqZ881wdF
  • DOGE: D8LypNzP6GayEBWUKCw3KVc7gwbGBaXynT