I add the following to the end of my settings.php
$config['system.site']['name'] = 'Drupal 8 DEVELOPMENT';
When I run drush cget system.site name
it still displays the old site name.
Any idea why it wouldn't be overriding?
I add the following to the end of my settings.php
$config['system.site']['name'] = 'Drupal 8 DEVELOPMENT';
When I run drush cget system.site name
it still displays the old site name.
Any idea why it wouldn't be overriding?
You can use the --include-overridden option to show overridden config, for example:
drush cget --include-overridden system.site name
This is intentionally. settings.php
doesn't change the configuration in database. It overrides the configuration only for the actual request.
If you remove the line from settings.php, you restore the configuration to the original value.
You can even edit the original configuration in UI, while it is overridden in settings.php.
You can check this:
drush ev "var_dump(\Drupal::config('system.site')->get('name'))"
has the result: Drupal 8 DEVELOPMENT
But if you use these commands:
drush cget system.site name
// is the same as
drush ev "var_dump(\Drupal::configFactory()->getEditable('system.site')->get('name'))"
the result will be the site name configured in Basic site settings.
Because I haven't found it spelled out clearly anywhere in the docs, I'm gonna write it here for posterity.
In settings.php:
$config
to override a value which you would access from \Drupal::config()
$settings
to override a value which you would access from \Drupal::settings()
\Drupal::state()
cannot be overridden from settings.php