etelford/phpdotenv-include-extension

vlucas/phpdotenv 的一个扩展,用于从 include 文件中加载 .env 变量,并将它们以类似于数组的下划线语法分组。

v0.1.1 2017-09-16 13:47 UTC

This package is auto-updated.

Last update: 2024-09-28 22:26:16 UTC


README

用于从 include 文件中加载 .env 变量的 PHP dotenv 扩展,适用于 vlucas/phpdotenv构建状态

如何及为什么?

此包作为优秀的 vlucas/phpdotenv 的附加组件工作。当 .env 文件变得很大时,将变量分离成更小的部分可能很方便。这有助于解决这个问题。

注意:如果你对 .env 文件的概念还不太熟悉,我建议你首先查看 vlucas/phpdotenv

安装

composer.json

"require": {
    "etelford/phpdotenv-include-extension": "0.1.*"
}

示例

像往常一样创建你的 .env 文件,但如果你想将它的部分内容分离出来,可以使用 include。

# in your root .env
APP_NAME="My app"
DATABASE_INCLUDE=".database.env"

# .database.env
NAME=mydb
USERNAME=root
PASSWORD=s3cr3t
PORT=3306

当你想从一个 include 文件中检索一个 env 变量时,创建一个 Etelford\Dotenv 实例,然后使用你通常用于包含环境变量的任何方法检索变量。

# Be sure to include your autoloader
$dotenv = new Etelford\Dotenv(__DIR__);
$dotenv->load();

echo getenv('DATABASE_NAME'); // mydb
echo $_ENV('DATABASE_USERNAME'); // root
echo $_SERVER('DATABASE_PASSWORD'); // s3cr3t
echo env('DATABASE_PORT'); // 3306

如你所见,include 文件中的变量成为命名空间化的。在上面的例子中,使用命名空间(DATABASE)和下划线(_)以及单词 INCLUDE 包含了 .database.env

与 Laravel 5.x 一起使用

如果你想与 Laravel 框架一起使用此工具,请打开你的 bootstrap/app.php 并在创建应用程序后添加以下内容

// This creates the application
$app = new Illuminate\Foundation\Application(
    realpath(__DIR__.'/../')
);

// Add this to enable .env includes
$dotenv = new Etelford\Dotenv($app->environmentPath());
$dotenv->load();

就这样!现在你可以尽可能多地使用包含的 .env 文件。

约定

  1. include 的路径始终是相对于你的根 .env 文件。
  2. 你使用 _INCLUDE 关键字声明一个变量指向一个 include 文件。如果你想覆盖它,可以在创建 Dotenv 类时使用第三个参数: $dotenv = new Etelford\Dotenv(__DIR__, '.env', 'PATH'); 注意,如果你使用这种自定义设置,不应提供下划线(_)。

注意事项

此包将 无法 作为 命令行脚本 使用。