Настройки из БД экспортируются в файлы конфигурации, которые переносятся на другую версию сайта, после чего делается импорт в БД.
simple configuration – простая текстовая информация(например название сайта)
configuration entities – структурированная информация(например типы материалов). Т.е. по сути эта конфигурация определяет структуру типа сущности и методы для работы с ним.
Информация временного характера о текущем состоянии вашего сайта, такая как время, когда задачи крона были запущены в последний раз.
Информация о состоянии отличается от конфигурации следующим образом:
Состояние определяется для конкретного окружения
Вся информация о состоянии теряется при сбросе базы данных (т. Е. Переустановке сайта из конфигурации или удалении базы данных). Напротив, экспортированная конфигурация может оставаться в базе кода и будет повторно импортирована при установке на сайте.
a. Чем они отличаются от Drupal::keyValue - ?
State API - это просто уровень абстракции поверх keyValue API. «keyValue» API позволяет сохранять любое произвольное сериализуемое значение с пространством имен ключей для «коллекции». «Состояние» - это просто одна коллекция.
Получить:
$config = \Drupal::config(‘system.site’);
$front = $config->get(‘page.front’);
Изменить:
$config->set();
………………………………….
$config_factory = \Drupal::configFactory();
$config = $config_factory->getEditable(‘example.configuration’);
$config->set(‘fruit’, [‘apple’, ‘banana’, ‘mango’]);
$config->save(TRUE);
Чтобы изменить конфигурацию, вам нужно будет получить экземпляр \ Drupal \ Core \ Config \ Config (изменяемый объект конфигурации), вызвав getEditable () на фабрике конфигурации.
Попытка внести изменение или вызов функции delete () / save () в экземпляре \ Drupal \ Core \ Config \ ImmutableConfig вызовет исключение ImmutableConfigException
Создать плагин, наследующися от ConfigEntityBase