thesnackalicious/multidotenv

Laravel 5 的简单环境特异 .env 文件。

dev-master 2015-06-01 00:29 UTC

This package is not auto-updated.

Last update: 2024-09-28 17:43:50 UTC


README

Laravel 5 的简单环境特异 .env 文件。

multidotenv 是一个 Laravel 5 的包,提供加载额外环境特异 .env 文件的功能。

如何工作

Laravel 5 使用 dotenv 包来加载根目录下的 .env 文件。multidotenv 扩展 Laravel 5,以便根据环境名称加载额外的 .env 文件。

例如,给定一个包含以下内容的 .env 文件

DB_HOST=localhost
DB_DATABASE=my_project
DB_USERNAME=root
DB_PASSWORD=root

以及一个包含以下内容的 .env.testing 文件

DB_DATABASE=my_project_testing

当运行命令 php artisan migrate --env=testing 时,加载的环境变量将是

DB_HOST=localhost
DB_DATABASE=my_project_testing
DB_USERNAME=root
DB_PASSWORD=root

请注意,如果存在,此包将始终加载 ' .env.' . $app->environment()。这通常是 APP_ENV 设置的内容,但在使用 artisan 时可以通过传递 --env 标志来覆盖。如果这两个条件都不成立,Laravel 5 将默认使用 production

关于 HTTP 请求呢?

您可以使用上述“始终加载”功能来为 HTTP 请求加载环境特异的 .env 文件。

例如,在您的 .env 文件中将您的 APP_ENV 变量设置为 foo。现在,即使是通过 HTTP 请求,如果存在,也会加载 .env.foo 文件。

安装

thesnackalicious/multidotenv 添加到您的 composer.json 文件

"require": {
  "thesnackalicious/multidotenv": "dev-master"
}

使用 composer 安装此包。

$ composer update

更新 Web 核心和 Console 核心

bootrappers() 函数添加到 app/Http/Kernel.php 文件和 app/Console/Kernel.php 文件

/**
 * Get the bootstrap classes for the application.
 *
 * @return array
 */
protected function bootstrappers()
{
    $search = 'Illuminate\Foundation\Bootstrap\DetectEnvironment';
    $replacement = 'TheSnackalicious\MultiDotEnv\DetectEnvironment';

    return array_map(function($v) use ($search, $replacement) {
        return $v == $search ? $replacement : $v;
    }, $this->bootstrappers);
}