helhum/dotenv-connector

为composer项目设置环境变量的可能性。

安装次数: 2,941,861

依赖: 38

建议者: 6

安全: 0

星标: 153

关注者: 8

分支: 16

开放问题: 6

类型:composer-plugin

v3.1.0 2024-02-07 13:03 UTC

README

这是一个composer插件,可以将.env文件中的环境变量提供给任何基于composer的项目,而无需修改项目中的代码。

背景信息

你可能想了解为什么将配置存储在环境中是一个好主意。[链接](http://12factor.net/config)。dotenv的理念是将此过程尽可能简化,这就是为什么创建了[phpdotenv](https://github.com/vlucas/phpdotenv)库。phpdotenv从.env文件加载环境变量到getenv(), $_ENV和$_SERVER,但你需要自己添加解析代码。

composer + symfony/dotenv + dotenv connector = <3

此库的想法是,每个由composer管理的项目,都会在composer自动加载初始化时间自动解析和加载同一位置的.env文件(与根composer.json相同)。这意味着环境变量可以非常早地使用,因此你可以在应用程序启动时使用它们。

如果环境变量APP_ENV设置为任何值,或者指定的.env文件不存在,则不执行任何操作,这样你就可以安全地用于生产。

如果你有机会在生产环境中公开环境变量,则建议这样做,并设置APP_ENV以及使用在环境中直接公开的变量。

然而,对于规模较小的项目,仍然可以使用.env文件作为生产环境的有效和简单解决方案。

配置选项

通常你不需要任何配置选项。但是,如果你需要,你可以修改.env的路径或名称以符合你的需求。

你可以在根composer.json文件的extra部分配置dotenv connector,如下所示

  "extra": {
      "helhum/dotenv-connector": {
          "env-file": ".env",
          "adapter": "Helhum\\DotEnvConnector\\Adapter\\SymfonyDotEnv"
      }
    }

env-file

如果你想将.env文件放在不同的位置,你可以指定从基本目录的相对路径。

默认值是".env",这意味着紧挨着你的根composer.json

关于在.env文件中引号值的注意事项

由于.env文件解析表现得像被包含在shell中,你必须注意具有字面美元符号$的值需要用单引号括起来。这可能发生在你使用通过.env传递的凭据的散列值时,例如。

适配器

如果你需要以不同的方式公开环境变量,可以指定实现\Helhum\DotEnvConnector\DotEnvVars接口的类。

默认值是"Helhum\DotEnvConnector\Adapter\SymfonyDotEnv",它使用symfony/dotenv对单个.env文件的默认解析。

这可能在以下情况下很有用,例如,如果你更喜欢使用其他dotenv解析库来公开.env中定义的变量,或者你想要切换到symfony dotenv解析的另一种解析策略。在后一种情况下,将"Helhum\DotEnvConnector\Adapter\SymfonyLoadEnv"用作此选项的值。请查看现有实现以获取示例。

反馈

欢迎提出任何反馈。请撰写错误报告、功能请求、创建拉取请求,或通过 Twitter 发送“谢谢”或传播消息。

谢谢!