sobyunbyte/dotenv-php

为 PHP fastcgi 应用程序优化 vlucas/phpdotenv

v2.0.0 2018-12-06 00:47 UTC

This package is auto-updated.

Last update: 2024-09-06 14:18:50 UTC


README

==========

这是一个针对 vlucas/phpdotenv 在 PHP fastcgi 应用程序中的优化。

vlucas/phpdotenv 非常出色。然而,我们发现它在 fastcgi 中读取和解析 .env 文件需要很长时间。因此,这个库诞生了,它使用原生的 PHP 文件作为环境配置文件。

优点

  1. .env.php 可以被 opcache 缓存。它比 .env 花费的时间少得多。
  2. 任何 PHP 代码都可以放在 .env.php 中。你可以做更多的事情(例如包含文件、计算、连接字符串等)。

缺点

  1. .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,
    // ....
];

建议

  1. 不要.env.php 文件添加到你的版本控制系统(例如 git/svn)中。
  2. .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()