Дополнительные типы блоков (EBT) — новый опыт конструктора страниц❗

Дополнительные типы блоков (EBT) — стилизованные, настраиваемые типы блоков: слайдшоу, вкладки, карточки, аккордеоны и многие другие. Встроенные настройки для фона, DOM Box, плагины Javascript.

Демо EBT модули Скачать EBT модули

❗Дополнительные типы параграфов (EPT) — новый опыт работы с параграфами

Дополнительные типы параграфов (EPT) — набор модулей, основанный на аналогичных параграфах.

Демо EPT модули Скачать EPT модули

Scroll

Хранение конфигурации в Drupal 8

30/04/2020, by maria

По умолчанию информация о конфигурации в Drupal 8 хранится в базе данных.

Формат файла конфигурации (YAML)

Расширения (модули, темы и профили) предоставляют данные конфигурации в файлах YAML.

Вот пример файла конфигурации:

some_string: 'Woo kittens!'
some_int: 42
some_bool: true

Конфигурация также может быть вложенной. Вот пример:

name: thumbnail
label: 'Thumbnail (100x100)'
effects:
  1cfec298-8620-4749-b100-ccb6c4500779:
    id: image_scale
    data:
      width: 100
      height: 100
      upscale: true
    weight: 0
    uuid: 1cfec298-8620-4749-b100-ccb6c4500779

Схема конфигурации

Конфигурация имеет схему. Это описано в схеме конфигурации/документации метаданных.

Конфигурация по умолчанию для расширения

Расширение (модуль, тема или профиль), предоставляющее значения по умолчанию для своей конфигурации, должно поместить эту конфигурацию в файлы YAML в своем подкаталоге config/install.

Если расширению нужны только базовые параметры простой конфигурации, все настройки по умолчанию могут быть помещены в один файл modulename.settings.yml. Для более сложных настроек вы можете разделить вашу конфигурацию на несколько файлов. Каждый объект конфигурации должен быть помещен в свои собственные файлы YAML, и они должны быть сгенерированы, если модуль запишет свою конфигурацию (не пытайтесь записать их вручную).

Чтобы предоставить значения по умолчанию для конфигурации, которая требует динамического значения (которое, следовательно, не может быть установлено в modulename.settings.yml), сделайте это в hook_install(). Например:

/**
 * Implements hook_install().
 */
function modulename_install() {
  // Set default values for config which require dynamic values.
  \Drupal::configFactory()->getEditable('modulename.settings')
    ->set('default_from_address', \Drupal::config('system.site')->get('mail'))
    ->save();
}

Необязательная конфигурация для расширения

Необязательные элементы конфигурации для расширения (модуля или темы) хранятся в подкаталоге config/option.

Это элементы конфигурации, которые зависят от чего-то, от чего само расширение явно не зависит, поэтому они устанавливаются только при соблюдении всех их зависимостей.

Например, в сценарии, в котором модуль A имеет необязательную конфигурацию, для которой требуется модуль B, но сначала устанавливается модуль A, а через некоторое время модуль B, тогда каталог config/option модуль A будет сканироваться в это время на наличие недавно обнаруженных зависимостей, и Конфигурация будет установлена ​​тогда. Если модуль B никогда не устанавливается, дополнительный элемент конфигурации также не будет установлен.

Активная конфигурация хранилища

По умолчанию Drupal 8 сохраняет активную конфигурацию в базе данных для повышения производительности и масштабируемости. См. «Активная конфигурация по умолчанию» изменена с хранилища файлов на хранилище БД для получения дополнительной информации.

Обновить конфигурацию из yaml в базу данных

Если во время разработки вам нужно обновить конфигурацию с yaml до базы данных, вы можете использовать команду drush config-import (cim).
Вы редактируете файл конфигурации yml в папке активной конфигурации (как определено в файле settings.php, например, sites/default/files/config_6dh1U_2YKLGrrh5oLxAgobbledygook/sync), а затем запускаете drush cim. Очистите кэши (drush cr), чтобы увидеть изменения.
Если вы удовлетворены настройками в файле yml, вы копируете их в свой модуль или тему.

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.