Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么';s在Symfony中使用parameters.yml文件_Symfony - Fatal编程技术网

什么';s在Symfony中使用parameters.yml文件

什么';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

我曾经在config.yml文件中这样为Symfony项目编写配置:

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文件才有意义。