Конфигурационная система (Configuration management initiative - CMI) в Drupal 8

В друпал 7 конфигурацию с одного на другой сайт переносили в основном с помощью модуля features. В друпал 8 ситуация немного изменилась в связи с появлением конфигурационной системы (CMI). Так что же она нового принесла в друпал? Давайте разбираться.

Во-первых, в друпал 7 были так называемые variables, в которые записывались данные и хранились они в базе данных в соответствующей таблице variable. В друпал 8 же все эти данные хранятся в YAML файлах. Для каждого модуля можно создать файл modulename.settings.yml. К примеру, для модуля user будет файл user.settings.yml с таким содержанием:


admin_role: ''
anonymous: Anonymous
verify_mail: true
notify:
  cancel_confirm: true
  password_reset: true
  status_activated: true
  status_blocked: false
  status_cancelled: false
  register_admin_created: true
  register_no_approval_required: true
  register_pending_approval: true
register: visitors
signatures: false
cancel_method: user_cancel_block
password_reset_timeout: 86400
password_strength: true
langcode: en

Во-вторых, в друпал 8 появились конфигурационные сущности (Configuration entities), которые также хранятся в YAML файлах. Контентные сущности хранят свои данные по-прежнему в базе данных. К конфигурационным сущностям относятся: стили изображений, роли пользователей, вьюсы (даже так), форматы даты, input фильтры, инстансы полей, инстансы блоков, меню, словари и многие другие.

В каталоге sites/deafault/files/config_xxx/ есть 2 каталога active и staging. В папке active хранятся файлы для текущей конфигурации На данный момент активную конфигурацию перенесли в базу данных, а в папке staging - промежуточные конфигурационные файлы, которые предназначены для импортирования и экспортирования конфигураций.

Импорт/экспорт конфигурации можно производить через админку. Есть простой (одиночный) импорт/экспорт, при котором мы выбираем нужную конфигурацию, затем копируем в поле нужное нам содержание.

Для изменения имени сайта и слогана нужно перейти в админку /admin/config/development/configuration/single/import и выбрать в Configuration type значение "Simple configuration", затем ввести имя конфигурационного файла и в textarea скопировать его содержимое. И нажать кнопку "Import".

cmi_import.png

А также есть полный импорт/экспорт, при котором мы можем положить в архив конфигурационные файлы и их все импортировать/экспортировать. Он находится во вкладке по адресу /admin/config/development/configuration/full/import.

В следующей статье рассмотрим перенос конфигурации с помощью drush и git.