etelford / phpdotenv-include-extension
vlucas/phpdotenv 的一个扩展,用于从 include 文件中加载 .env 变量,并将它们以类似于数组的下划线语法分组。
v0.1.1
2017-09-16 13:47 UTC
Requires
- php: ^5.4 || ^7.0
- vlucas/phpdotenv: ~2.2
Requires (Dev)
- phpunit/phpunit: ^4.0 || ^6.0
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 文件。
约定
- include 的路径始终是相对于你的根
.env文件。 - 你使用
_INCLUDE关键字声明一个变量指向一个 include 文件。如果你想覆盖它,可以在创建Dotenv类时使用第三个参数:$dotenv = new Etelford\Dotenv(__DIR__, '.env', 'PATH');注意,如果你使用这种自定义设置,不应提供下划线(_)。
注意事项
此包将 无法 作为 命令行脚本 使用。