Last active
April 15, 2025 18:49
-
-
Save crittermike/2d2c6734c506d509505fa79142125757 to your computer and use it in GitHub Desktop.
Importing Drupal 8 config programmatically
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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')); |
@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...
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.