-
-
Save crittermike/2d2c6734c506d509505fa79142125757 to your computer and use it in GitHub Desktop.
| <?php | |
| // Import arbitrary config from a variable. | |
| // Assumes $data has the data you want to import for this config. | |
| $config = \Drupal::service('config.factory')->getEditable('filter.format.basic_html'); | |
| $config->setData($data)->save(); | |
| // Or, re-import the default config for a module or profile, etc. | |
| \Drupal::service('config.installer')->installDefaultConfig('module', 'my_custom_module'); | |
| // Or, import YAML config from an arbitrary file. | |
| $config_path = drupal_get_path('module', 'my_custom_module') . '/config/install'; | |
| $source = new FileStorage($config_path); | |
| $config_storage = \Drupal::service('config.storage'); | |
| $config_storage->write('filter.format.basic_html', $source->read('filter.format.basic_html')); |
Sorry, I didn't specify, I meant the original snippet it just imports from module config, which doesn't (shouldn't) contain these values.
I just wanted to say something to other developers who will find this through Google search, that the original code might break stuff.
@mike-potter I can't get your code to work: it seems the configs are not imported. Has anything changed since your post (Aug 19, 2020) that would account for that?
[update] The code works as suggested for simple configs e.g. filter.format.basic_html where I changed the name to 'BASIC HTML'. In my use case I'm trying to import a list of some 30+ configs. That's where my issue lies... maybe with unmet dependencies...
Also see:
https://gist.github.com/keopx/085852c4455fc6baaad421a0e9c46c8d
I think this definitely needs better API documentation at Drupal.org Docs - it's really horrible to find a way to update existing configuration programmatically, for example adding an entity field in a module using an update hook...
That's the point of the snippet above: it is reading the actual config file from the config/sync folder, which contains the _core and uuid values already. Updating parts of a configuration is usually more fraught with danger. Importing config like this during an update hook is only a last resort however.