安装包时向 .env 添加新的环境变量

Nic*_*ase 5 php symfony composer-php dotenv

在我们公司,几个内部项目依赖相同的复制代码部分来处理与相同 API(例如:Google Suite、JIRA 等)的连接。为了避免为新项目一遍又一遍地复制相同的代码,我想创建收集这些 A​​PI 类的 Symfony 包。

棘手的部分:我正在寻找一种方法将必要的环境变量自动添加到.env,就像Symfony 的配方结构那样。但由于这些项目只能在内部使用,因此将它们的配方配置推送到公共存储库对我来说是行不通的。添加自定义配方服务器(如moay 的服务器)对我来说看起来很有趣,但需要在每个项目中进行额外配置composer.json

有没有更好的方法来解决这个问题,这样我就可以简单地在我的项目中定义所需的变量,这样它们就可以在.env没有任何额外魔法的情况下被添加进来?

注意:任何需要symfony/flex都可以,因为这应该是我们公司所有新项目的一部分

这些是我想避免的解决方案:

  • 将配置添加到包/包本身,以便这些配置值置于版本控制之下
  • 通过安装后手动运行的任何其他命令添加配置

小智 -1

在 Symfony 中,.env文件现在已提交到存储库中。因此,将敏感数据放在上面并不是一个好的做法。

更好的解决方案是创建一个文件名.env.local。该文件未提交,它会覆盖所有环境值.env

所以你可以在.env

MY_SENSITIVE_DATA=mypersonalkey
Run Code Online (Sandbox Code Playgroud)

并在你的.env.local

MY_SENSITIVE_DATA=the_real_sensitive_data
Run Code Online (Sandbox Code Playgroud)

来源:https ://symfony.com/doc/current/configuration.html#overriding-environment-values-via-env-local