geerthauwaerts / now-env
将 `now.json` 变量加载到您的开发环境中。
Requires
- php: >=7.2
Requires (Dev)
- phpunit/phpunit: ^7
This package is auto-updated.
Last update: 2024-09-13 20:30:54 UTC
README
将 now.json
变量加载到您的开发环境中。
借助此包,您可以轻松地在开发中使用 Now 环境变量。
如果您已经使用 now.json
文件,则 env
子属性将自动分配给 $_ENV
、$_SERVER
和 getenv()
。
当在 Now 实例中运行时,此包完全不执行任何操作。
安装
使用 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