Configuration Flashcards
- Каким образом можно перенести настройки с одной версии сайта на другую?
Настройки из БД экспортируются в файлы конфигурации, которые переносятся на другую версию сайта, после чего делается импорт в БД.
- Какие типы конфигураций бывают? В чём разница между ними?
simple configuration – простая текстовая информация(например название сайта)
configuration entities – структурированная информация(например типы материалов). Т.е. по сути эта конфигурация определяет структуру типа сущности и методы для работы с ним.
- Что такое стейты (state)? В чём отличие стейтов от конфигураций?
Информация временного характера о текущем состоянии вашего сайта, такая как время, когда задачи крона были запущены в последний раз.
Информация о состоянии отличается от конфигурации следующим образом:
Соотояние определяется для конкретного окружения
Вся информация о состоянии теряется при сбросе базы данных (т. Е. Переустановке сайта из конфигурации или удалении базы данных). Напротив, экспортированная конфигурация может оставаться в базе кода и будет повторно импортирована при установке на сайте.
a. Чем они отличаются от Drupal::keyValue - ?
State API - это просто уровень абстракции поверх keyValue API. «keyValue» API позволяет сохранять любое произвольное сериализуемое значение с пространством имен ключей для «коллекции». «Состояние» - это просто одна коллекция.
- Каким образом можно программно получить или изменить конфигурацию?
a. В общем случае?
b. Конфигурацию поля?
Получить:
$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