Configuration Flashcards

1
Q
  1. Каким образом можно перенести настройки с одной версии сайта на другую?
A

Настройки из БД экспортируются в файлы конфигурации, которые переносятся на другую версию сайта, после чего делается импорт в БД.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q
  1. Какие типы конфигураций бывают? В чём разница между ними?
A

simple configuration – простая текстовая информация(например название сайта)
configuration entities – структурированная информация(например типы материалов). Т.е. по сути эта конфигурация определяет структуру типа сущности и методы для работы с ним.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q
  1. Что такое стейты (state)? В чём отличие стейтов от конфигураций?
A

Информация временного характера о текущем состоянии вашего сайта, такая как время, когда задачи крона были запущены в последний раз.
Информация о состоянии отличается от конфигурации следующим образом:
Соотояние определяется для конкретного окружения
Вся информация о состоянии теряется при сбросе базы данных (т. Е. Переустановке сайта из конфигурации или удалении базы данных). Напротив, экспортированная конфигурация может оставаться в базе кода и будет повторно импортирована при установке на сайте.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

a. Чем они отличаются от Drupal::keyValue - ?

A

State API - это просто уровень абстракции поверх keyValue API. «keyValue» API позволяет сохранять любое произвольное сериализуемое значение с пространством имен ключей для «коллекции». «Состояние» - это просто одна коллекция.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q
  1. Каким образом можно программно получить или изменить конфигурацию?
    a. В общем случае?
    b. Конфигурацию поля?
A

Получить:
$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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly