-
Delete configuration from database using configuration management API.
Drupal::configFactory()->getEditable('automated_cron.settings')->delete();
-
Create configuration in database using configuration management API.
Drupal::service('config.storage')->write( 'views.view.content', Symfony\Component\Yaml\Yaml::parse(file_get_contents('./config/sync/views.view.content.yml')) );
-
Import arbitary yml file into configuration.
$source = new FileStorage($path);
$config_storage = \Drupal::service('config.storage');
$config_name = 'field.storage.node.field_body';
$config_storage->write($config_name, $source->read($config_name));
- Create fields storage
$path = 'path/to/config';
$entity_type = 'field_name';
$field_name = 'node';
// Variant 1. Using coonfig ctorage writer.
if (!FieldStorageConfig::loadByName($entity_type, 'field_name')) {
$source = new FileStorage($path);
$config_storage = \Drupal::service('config.storage');
$config_name = 'field.storage.' . $entity_type . '.' . $field_name;
$config_storage->write($config_name, $source->read($config_name));
}
// Variant 2. Using FieldStorageConfig onject.
$field_storage_yml = Yaml::parse(file_get_contents($path . '/field.storage.media.field_media_image.yml'));
if (!FieldStorageConfig::loadByName($field_storage_yml['entity_type'], $field_storage_yml['field_name'])) {
FieldStorageConfig::create($field_storage_yml)->save();
}
- Create field instance
$field_instance_yml = Yaml::parse(file_get_contents($path . '/field.field.media.image.field_media_image.yml'));
if (!FieldConfig::loadByName($field_instance_yml['entity_type'], $field_instance_yml['bundle'], $field_instance_yml['field_name'])) {
FieldConfig::create($field_instance_yml)->save();
}