sobyunbyte / dotenv-php
为 PHP fastcgi 应用程序优化 vlucas/phpdotenv
v2.0.0
2018-12-06 00:47 UTC
Requires
- php: >=7.0
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-06 14:18:50 UTC
README
==========
这是一个针对 vlucas/phpdotenv
在 PHP fastcgi 应用程序中的优化。
vlucas/phpdotenv
非常出色。然而,我们发现它在 fastcgi 中读取和解析 .env
文件需要很长时间。因此,这个库诞生了,它使用原生的 PHP 文件作为环境配置文件。
优点
.env.php
可以被 opcache 缓存。它比.env
花费的时间少得多。- 任何 PHP 代码都可以放在
.env.php
中。你可以做更多的事情(例如包含文件、计算、连接字符串等)。
缺点
.env.php
不能被其他语言(如 JavaScript、Java、Ruby 等)加载。但是谁在乎呢?:)
安装
建议使用 Composer
composer require sobyte/dotenv-php
你也可以下载 zip 文件并编写自己的自动加载器。
.env.php
你可以在 .env.php
中使用所有 PHP 的功能。但是建议尽可能少地使用。必须返回一个数组。
// A simple .env.php return [ "APP_ENV" => "local", "APP_DEBUG" => true, // .... ];
建议
- 不要 将
.env.php
文件添加到你的版本控制系统(例如 git/svn)中。 .env.php
应仅存储配置差异和秘密。
用法
它与 vlucas/phpdotenv
非常相似。创建一个 .env.php
文件后,你可以使用以下代码加载它
// assume .env.php is in current directory (__DIR__) (new \Sobyte\DotEnv\DotEnv(__DIR__))->load();
你可以使用 env($key)
函数来获取值
echo env('APP_ENV'); // => local
所有环境变量也存储在 $_ENV
、$_SERVER
中。你也可以使用这些超级全局变量。
注意:->load()
的默认行为是不覆盖现有的环境变量。如果你想覆盖,请使用 ->load(true)
或 ->overload()
。