Symfony2停止Composer将parameters.yml.dist安装到parameters.yml中

在symfony 2.3中新增了composer install脚本,还将parameters.yml.dist文件的内容复制到了parameters.yml文件中, 这里进一步解释。

我的问题是,我怎样才能阻止composer php执行这个动作?

composer.json删除两行:

 "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters", 

这是由IncenteevParameterHandler库完成的,它包含一个脚本来完成这个工作。 通过从configuration中删除脚本,它将永远不会被调用。

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

 "incenteev/composer-parameter-handler": "~2.0", ... "incenteev-parameters": { "file": "app/config/parameters.yml" }, 

第一个解决scheme :在composer.json“extra”部分添加“keep-outdated”:true

 [...] "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文件。 对我来说,这是添加Sqlite参数“path”“内存”,并避免看到他们删除每次我做一个composer php更新

 # 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 ------------ [...] 

我不知道哪个解决scheme是最好的,但两者都可行。

留下这个空的参数数组:

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

在composer.json文件的额外部分应该工作。

 "incenteev-parameters": {}, 

我认为这是正确的解决scheme:

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

这是在这个github问题中提到的https://github.com/symfony/symfony-standard/issues/642以及在git的参数https://github.com/Incenteev/ParameterHandler