【发布时间】:2019-04-22 18:52:27
【问题描述】:
主要原因是什么,Symfony 更喜欢使用 .env 文件 - 在其中保存环境变量的值 - 而不是使用 更多灵活的 .yaml 文件?
我问这个,因为我读到this comment,其中指出:
当我们使用 .yaml 文件时,它要简单得多。
我完全理解为什么我们需要切换到 .env 文件,但恕我直言,我们应该重新考虑一切。
感谢您的宝贵时间。
【问题讨论】:
-
使用环境变量的一个明显优势是您可以在不重建生产缓存的情况下更新它们的值。还有许多使用环境变量的部署策略。话虽如此,我只是使用了一个 parameters.yaml 文件。仍然可以正常工作。
-
谢谢@Cerad。也许您已经回答了我的问题,但我无法完全理解。对不起......我的问题实际上只与使用的文件类型有关。我的意思是,为什么 Symfony 更倾向于推荐在 .env 文件中定义环境变量,而不是在 .yaml 文件中?即使我不使用 Symfony,我也希望在 .yaml 文件中定义我自己的 Web MVC 的 env vars 值。虽然我有一些疑问,但在看到 Symfony 和许多其他大型项目使用 .env 文件之后。
-
需要明确的是,99% 的 Symfony 配置仍然使用 yaml 文件完成。只有少数环境特定值或机密信息存储在 .env 文件中。而且您的问题不适合stackoverflow。 sof 想看看具体的问题。如果你查看 Symfony 文档中的社区部分,你会看到一些 Symfony 特定的讨论区。没有人会告诉你为什么你被投反对票,因为提供反对票的细节被认为是“不友善的”。
-
在
*NIX操作系统上,有一个名为env的shell 命令。使用的语法是您在当前正在使用的.env文件中看到的 -KEY=VALUE。.env不必存在。它用于在每个环境的基础上覆盖现有值。.env不用于 Symfony 或其他流行框架中的配置 - 它用于补充它,我的 猜测 是他们正试图遵循铺好的道路以前在 Unix OS 上工作的人。.env简单易用,并且多个不同的项目(非 php)相关正在使用它,因此在 devops 上更改配置非常容易。 -
好吧,来自一个整天都在做 devops 的人(我)的 POV,我可以告诉你,我和我的其他同事更喜欢
.env而不是其他格式。原因很简单——学习语法需要 0 时间,而对于像.yaml这样的格式,情况并非如此。可悲的是,我们确实必须使用.yaml、.env、json配置、.ini、.cnf、.conf以及其他导致我们遇到XKCD: Standards 的情况:)
标签: php symfony environment-variables symfony4 symfony-4.2