Symfony2 stop Composer installing parameters.yml.dist into parameters.yml
Solution 1
Remove this line twice from your composer.json
:
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
This is done by the IncenteevParameterHandler library, which contains a script that does this. By removing the script from the config, it will never be called.
If you remove that line for ever, you can also remove these lines (as the library isn't really needed anymore):
"incenteev/composer-parameter-handler": "~2.0",
...
"incenteev-parameters": {
"file": "app/config/parameters.yml"
},
Solution 2
First solution : add "keep-outdated": true in the 'extra' section of your composer.json.
[...]
"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"
}
[...]
incenteev will not remove parameters any more.
Second solution : modify the app/config/parameter.yml.dist file. For me it was to add Sqlite parameters 'path' and 'memory' and avoid to see them deleted each time I do a composer update.
# 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 ------------
[...]
I don't know which solution is the best but both works.
Solution 3
leaving empty this array of parameters:
"incenteev-parameters": {
"file": "app/config/parameters.yml"
},
in the extra section of your composer.json file should work.
"incenteev-parameters": {},
Solution 4
This is the correct solution in my opinion:
"incenteev-parameters": {
"file": "app/config/parameters.yml",
"keep-outdated": true
},
It was mentioned in this github issue https://github.com/symfony/symfony-standard/issues/642 as well as in the github documentation for incenteev-parameters https://github.com/Incenteev/ParameterHandler
Related videos on Youtube
Andrew Atkinson
Updated on July 09, 2022Comments
-
Andrew Atkinson almost 2 years
New in symfony 2.3 the
composer install
script also copies theparameters.yml.dist
file contents into theparameters.yml
file, explained further here.My question is, how can I stop composer preforming this action?
-
flu over 10 yearsI like the second solution the best as it forces you to manifest all your project's parameters in the
parameter.yml.dist
so that everyone who exports your project knows about them. -
ZeeCoder over 9 yearsIt's not though. All that's happening is that Composer now won't call the buildParameters method of the ScriptHandler. It's not even part of the core symfony code, it's a 3rd party bundle. (So it's removal won't have any side-effects.) It's included in the standard distro though, since it's really useful when working in teams - even if it's just 2 people -, so ultimately I wouldn't recommend removing this functionality.