在symfony 2.3中新增的composer install
脚本还将parameters.yml.dist
文件内容复制到parameters.yml
文件中,此处对此进行了进一步解释。
我的问题是,如何才能阻止作曲家预先创作这个动作?
从composer.json
:中删除这一行两次
"Incenteev\ParameterHandler\ScriptHandler::buildParameters",
这是由IncentievParameterHandler库完成的,该库包含一个执行此操作的脚本。通过从配置中删除脚本,它将永远不会被调用。
如果你永远删除那行,你也可以删除这些行(因为库已经不需要了):
"incenteev/composer-parameter-handler": "~2.0",
...
"incenteev-parameters": {
"file": "app/config/parameters.yml"
},
第一个解决方案:在composer.json.的‘extra’部分添加"保持过时":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参数"路径"和《内存》,避免每次更新composer时看到它们被删除。
# 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"
},
在composer.json文件的额外部分应该可以工作。
"incenteev-parameters": {},
在我看来,这是正确的解决方案:
"incenteev-parameters": {
"file": "app/config/parameters.yml",
"keep-outdated": true
},
这个github问题中提到了它https://github.com/symfony/symfony-standard/issues/642以及在github文档中的燃烧参数https://github.com/Incenteev/ParameterHandler