什么';s在Symfony中使用parameters.yml文件
我曾经在config.yml文件中这样为Symfony项目编写配置:什么';s在Symfony中使用parameters.yml文件,symfony,Symfony,我曾经在config.yml文件中这样为Symfony项目编写配置: my_bundle: internal_identifier: %test% key: %someparam% endpoint: %nobil_endpoint% 并使用parameters.yml(被git忽略)允许其他开发人员使用不同的值 但是我认为使用这个: my_bundle: internal_identifier: my-identifier key: 12345
my_bundle:
internal_identifier: %test%
key: %someparam%
endpoint: %nobil_endpoint%
并使用parameters.yml(被git忽略)允许其他开发人员使用不同的值
但是我认为使用这个:
my_bundle:
internal_identifier: my-identifier
key: 12345
endpoint: www.endpoint.com
仍然允许开发人员使用不同的值,因为他们可以使用config_dev.yml,Git也会忽略它
所以我的问题是:如果config_dev.yml可以用于相同的事情,parameters.yml文件的用途是什么?首先,git忽略的是什么取决于您,您的repo根目录中有一个.gitignore文件 我建议使用不同的参数: 您有不同的参数。yml类似于:
parameters.yml.dev.one
parameters.yml.dev.two
parameters.yml.dev.three
例如,您是一名开发人员,然后创建一个指向“your”parameters.yml.dev.one的符号链接,如:
cd app/config; ln -s parameters.yml.dev.one parameters.yml
现在在你的机器上有一个parameters.yml,它指向你的参数
开发人员2将与他的参数进行符号链接,等等
如果您不清楚参数和配置之间的区别,请查看symfony手册
例如,当您需要prelive或live上的另一个数据库连接时,您可以使用符号链接对stage执行相同的操作
这样做的好处是,每个开发人员都拥有其机器上每个阶段和开发人员的参数
干杯因为在生产环境中,symfony需要在生产环境中工作,而不是在开发环境中
为什么要从存储库中删除config_dev.yml?被Git忽略是最有用的,但在执行
composer安装时,它也会提示您缺少值
如果您想拥有不被忽略的公共参数,可以创建一个参数\u common.yml
,并在config.yml
中获取它(或直接在config.yml中添加它们)
对于配置/参数文件的高级使用,我建议您检查一下我认为这里有两个问题:
为什么parameters.yml被忽略是默认的Symfony.gitignore文件
为什么使用parameters.yml而不是config_dev.yml
根据第一个问题,默认情况下会忽略parameters.yml,因为此文件用于保存每次安装的设置。例如,不同的开发人员可能需要不同的数据库设置。如果不忽略parameters.yml,您的“个人”设置将复制到每个开发人员
然后,当您运行composer install时,composer脚本将检查此文件并创建/更新本地parameters.yml文件,提示您输入每个设置,从而使您有机会更改与给定安装相关的设置
在第二个问题中,参数被认为与配置设置不同。参数是将install更改为install的设置,而对于特定应用程序(.)的所有安装,配置设置将保持不变。,但您可以使用config_prod.yml进行设置。我忽略了它,因为有时候我们的工作价值观不同。是的,你说得对。这个项目有一个config_prod.yml文件和一个config.yml文件。但是,如果您在生产环境中使用config.yml,如果您在开发环境中使用config_dev.yml。我仍然不明白parameters.yml的意义。我只是检查了一下,Symfony的当前版本还附带了一个config_prod.yml文件。当你安装你的sf应用程序时,你可以用parameter配置安装,并让每个开发人员的config_dev保持不变。因为在其他每个项目中,config_dev.yml都不会被忽略。顾名思义,parameters.yml是可配置参数的存储,而config_dev.yml是dev环境的配置文件。在大多数情况下,从一个开发人员到另一个开发人员,它应该是静态的,没有它,app_dev.php将崩溃。感谢您提供的信息,现在有了parameters.yml文件才有意义。