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