I have some custom entries in my parameters.yml, every time I run a composer update, it wants to add the missing entries, which even worse overwrites my custom entries. How can I stop this?
e.g. before composer update
#parameters.yml
# Env = GLOBAL
parameters:
# DB settings - GLOBAL
database_driver: pdo_mysql
database_host: 127.0.0.1
database_port: 3306
#mailer settings
mailer_to: yo@yo.com
mailer_from: yo@site.com
mailer_transport: smtp
mailer_subject: ":-| Something is broken!"
# Framework use - GLOBAL
locale: en
after
#parameters.yml
# This file is auto-generated during the composer install
parameters:
database_driver: pdo_mysql
database_host: 127.0.0.1
database_port: 3306
mailer_transport: smtp
locale: en
database_name:
database_user:
database_password:
mailer_host:
mailer_user:
mailer_password:
secret:
Luckily my repo and my working file through my ide are two different files and need to be synced. after i run composer update, when i run a sync, i download all files to my IDE except for the parameters.yml, that one i push back up to overwrite the one that was just auto created.
I would like to eliminate this hassle, as I keep my db passwords on a per/env file.
EDIT: When I try to fill in the unneeded vars as dummy values by nulling them out, it backfires as well.
$ composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Generating autoload files
Updating the "app/config/parameters.yml" file
Some parameters are missing. Please provide them.
database_name: null
database_user: null
database_password: null
mailer_host: null
mailer_user: null
mailer_password: null
secret: null
[Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException]
You have requested a non-existent parameter "mailer_from".
Script Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache handling the post-update-cmd event terminated with an exception
[RuntimeException]
An error occurred when executing the "'cache:clear --no-warmup'" command.
The custom param is causing problems itself as well.
So now I go to peek at my newly generated file, and it looks like this
# This file is auto-generated during the composer install
parameters:
database_driver: pdo_mysql
database_host: 127.0.0.1
database_port: 3306
mailer_transport: smtp
locale: en
database_name: null
database_user: null
database_password: null
mailer_host: null
mailer_user: null
mailer_password: null
secret: null
But what i need it to say after regenerating ideally is this
/**
* my custom comment and copyright/legal tamper warning
*/
# Env = GLOBAL
parameters:
# DB settings - GLOBAL
database_driver: pdo_mysql
database_host: 127.0.0.1
database_port: 3306
#mailer settings
mail_to: me@site.com
mail_from: site@site.com
mail_transport: smtp
mail_subject: ":-| Something is broken!"
# Framework use - GLOBAL
locale: en
The rest of my parameters are located on another parameters file, that is dynamically included depending on what env loads, and has different db creds on them each.
EDIT per @AlpineCoder answer: my latests findings why adding dummy values doesnt work
When I add this to my parameters.yml
#dummy values to avoid regeneration
database_name: dummyvalue
database_user: dummyvalue
database_password: dummyvalue
mailer_host: dummyvalue
mailer_user: dummyvalue
mailer_password: dummyvalue
secret: dummyvalue
It no longer asks me to fill in these values, thats great, however, it still regenerates the file, deleting all my custom values, leaving me with this
# This file is auto-generated during the composer install
parameters:
database_driver: pdo_mysql
database_host: 127.0.0.1
database_port: 3306
mailer_transport: smtp
locale: en
database_name: dummyvalue
database_user: dummyvalue
database_password: dummyvalue
mailer_host: dummyvalue
mailer_user: dummyvalue
mailer_password: dummyvalue
secret: dummyvalue
You have two options, either fill out your parameters.yml.dist
or you can go to your composer.json
file and in the post-update-cmd
and post-install-cmd
you should see something like:
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
if you remove that line, your parameters will no longer be changed when you run composer.
If you're collaborating with other people, updating your parameters.yml.dist
will probably be the better way to go though as it will help remind them they need to fill out new parameters when new ones are introduced.