所有Symfony版本中。env文件处理的改进ob娱乐下载
2018年11月19日·发表的瑞安·韦弗
当Symfob娱乐下载ony 4.0发布的时候.env
文件是作为一种设置环境变量的方法引入的。系统的核心有不改变了。但是,由于最近对一些核心Symfony食谱的更新,ob娱乐下载.env
加载有一些新的功能,可以享受任何ob娱乐下载Symfony Flex项目!
如果您有一个现有的Symfony应用程序(在今天ob娱乐下载之前启动),您的应用程序不需要任何更改来保持工作.但是,如果/当你准备好利用这些改进,你将需要做一些小的更新。
到底发生了什么变化?
但首先,发生了什么变化?在高层次上,没有太多。以下是最重要的变化总结:
- 一个)
.env.dist
文件不再存在。它的内容应该移动到您的.env
文件(参见下一点)。 - B)
.env
文件是现在提交到存储库。它以前被忽略通过.gitignore
文件(更新后的食谱不会忽略此文件)。因为这个文件是提交的,所以它应该包含不敏感的默认值。基本上,.env.dist
文件已移动到.env
. - C)
.env.local
文件现在可以创建到覆盖机器的环境变量。该文件在new.gitignore
. - D)当测试时,你的
.env
现在读取文件,使其与所有其他环境一致。您还可以创建一个.env.test
用于覆盖测试环境的文件。
点(D)是这些更改背后的主要动机之一:它为您设置和重写环境变量测验
环境令人愉悦。
这些改进可以用于任何Symfony Flex项目(Symfony 3.4或更ob娱乐下载高版本)。对配方的更改(见下文)使利用Symfony 4.2特性成为可能ob娱乐下载为每个环境定义env变量-低版本。
为了利用这些,你将需要修改一些文件在您现有的应用程序。
更新我的应用
更新现有的应用程序是可选的,但只需要修改几个文件。要更新,请参见:DotEnv:在Symfony文档中更新我的应用程序ob娱乐下载.
奖励:——env &——no-debug控制台弃用删除
的- - - env
而且——没有调试
最近已弃用。然而,基于社区反馈和这些新的工作欧宝体育平台怎么样.env
功能,已被恢复的弃用:- - - env
而且——没有调试
选项将继续工作!还有,固有的.env
文件将被加载。例如,希望在您的测验
环境使用定制的DATABASE_URL
在你的.env.test
文件吗?这将像你期望的那样工作:
1
$PHP bin/控制台原则:schema:create——env=测验
有什么问题吗?让我们知道!
❤️Symfoob娱乐下载ny社区欧宝体育平台怎么样
发表在#欧宝官网下载app
评论
jeremyFreeAgent
2018年11月19日如是说在39
我已经在做了!很高兴在默认情况下看到它。
彼得亚雷Karszny
2018年11月19日如是说在49
DotEnv会检查我们是否重写了本地存在的(正确的)env变量吗?这些文件是否会以某种方式同步?
> Piotr Karszny: DotEnv会检查我们是否重写了本地存在的(正确的)env变量吗?这些文件是否会以某种方式同步
通过“现有(正确的)env变量”,你是指“真实的”env变量,你可能已经设置?如果是这样,这种行为没有改变:DotEnv组件(加载所有这些.env文件)永远不会覆盖您设置的“真正的”环境变量。例如,如果您在“test”环境中,Symfony将加载.env和.env.test。ob娱乐下载但是,如果这些文件中设置的任何env vars已经作为真正的环境变量存在,那么文件中的值将不会覆盖真正的环境变量值:)。
干杯!
通过“现有(正确的)env变量”,你是指“真实的”env变量,你可能已经设置?如果是这样,这种行为没有改变:DotEnv组件(加载所有这些.env文件)永远不会覆盖您设置的“真正的”环境变量。例如,如果您在“test”环境中,Symfony将加载.env和.env.test。ob娱乐下载但是,如果这些文件中设置的任何env vars已经作为真正的环境变量存在,那么文件中的值将不会覆盖真正的环境变量值:)。
干杯!
彼得亚雷Karszny
2018年11月19日如是说在十五14
@ryan好,谢谢!:)
Jachymšek金银铜
2018年11月19日如是说在15:20
终于!当我开始使用.env文件时,测试环境是我的主要问题,不得不做一些讨厌的hack来解决所有问题。
很高兴看到弃用也被恢复了。
我需要更新什么来使用新的.env.test?symfoob娱乐下载ny / flex吗?它已经稳定了吗?
很高兴看到弃用也被恢复了。
我需要更新什么来使用新的.env.test?symfoob娱乐下载ny / flex吗?它已经稳定了吗?
这对测试环境来说真是个好欧宝平台是合法的吗消息(当涉及到env变量时,这是一个真正的问题)。
关于生产环境的一个小问题,如果我们不能使用env变量(可能是由于缺乏SSH等),是否可以使用' .env. env. exe。Prod '文件可以定义吗?
关于生产环境的一个小问题,如果我们不能使用env变量(可能是由于缺乏SSH等),是否可以使用' .env. env. exe。Prod '文件可以定义吗?
> Ismael Ambrosi:“这不是我可以应用到我的项目的改进,因为我们也使用docker-compose和a '。Env '文件自动加载作为机密处理的环境变量,不能提交给repo。”
由于Docker使用。env文件,我认为你可以继续将它排除在Git索引之外,保留一个。env文件。dist是。env文件的结构,加上,像Symfony使用。env。ob娱乐下载本地文件,.env文件的内容并不是真正的“重要”(主要是因为你可以使用。env。Test和。env。为了重载env变量,最后,.env。local可以作为唯一的真相来源(不需要使用Symfony的.env文件),这样,您可以将秘密保存在.env文件中,而不会破坏所有的基础设施)。ob娱乐下载
由于Docker使用。env文件,我认为你可以继续将它排除在Git索引之外,保留一个。env文件。dist是。env文件的结构,加上,像Symfony使用。env。ob娱乐下载本地文件,.env文件的内容并不是真正的“重要”(主要是因为你可以使用。env。Test和。env。为了重载env变量,最后,.env。local可以作为唯一的真相来源(不需要使用Symfony的.env文件),这样,您可以将秘密保存在.env文件中,而不会破坏所有的基础设施)。ob娱乐下载
Ryan Weaver is a certified Symfony engineer.
Get certified! Online exams available in all countries.
Register Now有一个大问题需要修复:测试环境中没有加载.env文件,这意味着你需要在phpunit.xml.dist中复制所有的env变量。这基本上是一个需要修复的“bug”。
解决这个问题的方法是为Symfony添加加载.env的能力。ob娱乐下载{env}文件(例如.env.test)…这就是我们真正需要的。但是,还添加了其他一些(不太重要的)特性,比如能够使用.env.test。本地的,还有远离。env的决定。Dist文件,以提交.env文件。最后一部分与修复上面的“bug”无关,我认为这部分将是最困难的——我们需要重新教授.env文件的目的,而且(虽然它真的很好)这一部分没有给我们任何新的具体特性。
总结:
1) .env将被提交
2) .env。本地将不会被提交(本地覆盖)
3) .env。测验将be committed
而且您可能不需要创建任何其他文件。您可以创建其他文件(例如.env.test.local),但我不认为会有这样的常见情况。任何匹配' .env.*的文件。在.gitignore中,Local '被忽略。
如果你有其他问题,请告诉我!