Symfony2停止编写器将parameters.yml.dist安装到parameters.yml

Symfony2停止编写器将parameters.yml.dist安装到parameters.yml,symfony,parameters,composer-php,Symfony,Parameters,Composer Php,symfony 2.3中新增的composer安装脚本还将parameters.yml.dist文件内容复制到parameters.yml文件中,进一步解释 我的问题是,如何停止composer执行此操作?从您的composer.json中删除这一行两次: "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters", 这是由IncenteVParameterHandler库完成的,该库包含执行此操作的脚本。通过从配置中删除脚本,它

symfony 2.3中新增的
composer安装
脚本还将
parameters.yml.dist
文件内容复制到
parameters.yml
文件中,进一步解释


我的问题是,如何停止composer执行此操作?

从您的
composer.json中删除这一行两次:

"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
这是由IncenteVParameterHandler库完成的,该库包含执行此操作的脚本。通过从配置中删除脚本,它将永远不会被调用

如果永远删除该行,也可以删除这些行(因为实际上不再需要该库):


将此参数数组留空:

"incenteev-parameters": {
    "file": "app/config/parameters.yml"
},
在composer.json文件的额外部分中应该可以使用

"incenteev-parameters": {},

第一个解决方案:在composer.json的“额外”部分添加“保持过时”:true

[…]
“额外”:{
“symfony应用程序目录”:“应用程序”,
“symfony网络目录”:“网络”,
“incenteev参数”:{
“文件”:“app/config/parameters.yml”,

“保持过时”:正确我认为这是正确的解决方案:

"incenteev-parameters": {
    "file": "app/config/parameters.yml",
    "keep-outdated": true
},

本期github以及incenteev参数的github文档中都提到了这一点,我最喜欢第二种解决方案,因为它迫使您在
parameter.yml.dist
中显示项目的所有参数,以便导出项目的每个人都知道这些参数。但事实并非如此。所发生的一切都是这样Composer现在不会调用ScriptHandler的buildParameters方法。它甚至不是核心symfony代码的一部分,而是一个第三方包(因此删除它不会有任何副作用)不过,它包含在标准发行版中,因为它在团队中工作时非常有用——即使只有两个人——所以最终我不建议删除此功能。
[...]
"extra": {
    "symfony-app-dir": "app",
    "symfony-web-dir": "web",
    "incenteev-parameters": {
        "file": "app/config/parameters.yml",
        "keep-outdated": true  <------------ ADDED LINE ------------
    },
    "branch-alias": {
        "dev-master": "2.3-dev"
    },
    "symfony-assets-install": "symlink"
}
[...]
# app/config/parameter.yml.dist
parameters:
    database_driver:   pdo_sqlite
    database_host:     ~
    database_port:     ~
    database_name:     ~
    database_user:     ~
    database_password: ~
    database_path:     ~ <------------ ADDED LINE ------------
    database_memory:   ~ <------------ ADDED LINE ------------
[...]
"incenteev-parameters": {
    "file": "app/config/parameters.yml",
    "keep-outdated": true
},