Виктор Ликин @vlikinСистема управления конфигурацией в Drupal 8Киев 2013http://vlikin.blogspot.com/2013/06/drupal-8.html?s...
Миграция конфигурацииК чему мы наконец-то пришли!А что мы на самом деле получили?
Получили● Определили, что является контентом, что конфигурацией.● Разместили в отдельных хранилищах.● Реализовали загрузку...
Порядок доклада● “Features в ядре”. Практический пример миграции конфигурационныхданных между проектами.● Изменения, касаю...
Перейдём к практическому применениюРассмотрим стандартный фунционал Drupal 8, который впиталв себя наилучшие практики моду...
Визуальный план миграции
Процесс миграции конфигурации● Изменим настройки на проекте live.● Переренесём настройки с live active → local staging.● О...
Находим настройки информации сайта, изменяем
Что у нас есть на local проекте.
Обновляем конфигурацию на local проекте
Находим файл конфигурации в файловом хранилище
Методы обновления файлов конфигурации● SCP● GIT, SVN, ...● FTP, SFTP● RSYNC● DRUSH RSYNC
Перемещаем файлы конфигурации между проектами● Перемещаем файлы между проектами live и local● Обновляем файловую конфигура...
Находим страницу синхронизации конфигурации
Находим изменённую группу конфигурации
Проверяем изменения
Команды Drush для конфигурации
Обновление конфигурацииdrush @sm.local config-importdrush @sm.local cc allОбновляем конфигурацию с файлового хранилища в а...
Проверяем результаты миграции
Смотрим результаты
Что касается разработчиков
Пример использования// Получаем название сайта.$site_name = variable_get(site_name, Drupal);// Изменяем название сайта на ...
Пример конфигурационного файлаname: mediumlabel: Medium (220x220)effects:bddf0d06-42f9-4c75-a700-a33cafa25ea0:name: image_...
Пример описания структуры конфигурационного файла# Simple extended data types:# Human readable string that must be plain t...
Другой примерimage.style.*:type: mappinglabel: Image stylemapping:name:type: stringlabel:type: labeleffects:type: sequence...
Типы данных# Basic scalar data types from typed data.boolean:label: Booleanclass: DrupalCoreTypedDataTypeBooleanemail:labe...
Типизированные конфигурационные файлы$new_slogan = Great new site slogan;$typed_site_info = config_typed()->get(system.sit...
Практика использованияИзбегайте множественную инициализацию объектов config в одной функции.Это сказывается на производите...
Функциональная схема системы конфигурации
Схема миграции
Модуль переводов конфигурацииdrupal.org/project/config_translation
Добавляем перевод
Модуль инспектирования конфигурацииЭто позволяет инспектировать значения, структуры конфигураций.drupal.org/project/config...
В виде дерева
В виде формыhttps://drupal.org/node/2010798
В виде PHP(raw)
Терминология● From - a site from, a live site.● To - a site to, a development site.● Environment, site - synonymous someti...
Ресурсы● Использование системы конфигурирования в Drupal 8http://goo.gl/g4nbn● Управление конфигурацией в Drupal 8http://g...
Виктор Ликин @vlikinСистема управления конфигурацией в Drupal 8
Upcoming SlideShare
Loading in …5
×

Dcmi v likin kyiv 2013

894 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
894
On SlideShare
0
From Embeds
0
Number of Embeds
455
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Dcmi v likin kyiv 2013

  1. 1. Виктор Ликин @vlikinСистема управления конфигурацией в Drupal 8Киев 2013http://vlikin.blogspot.com/2013/06/drupal-8.html?spref=tw
  2. 2. Миграция конфигурацииК чему мы наконец-то пришли!А что мы на самом деле получили?
  3. 3. Получили● Определили, что является контентом, что конфигурацией.● Разместили в отдельных хранилищах.● Реализовали загрузку группами.● Реализовали мультиязычность конфигурации.● Организовали процесс миграции конфигурации.
  4. 4. Порядок доклада● “Features в ядре”. Практический пример миграции конфигурационныхданных между проектами.● Изменения, касающиеся разработчиков.● Функциональная схема системы конфигурации.● Дополнительные модули, функционал, который должен войти в ядро.● Дискуссия.● Всё.
  5. 5. Перейдём к практическому применениюРассмотрим стандартный фунционал Drupal 8, который впиталв себя наилучшие практики модуля Features.
  6. 6. Визуальный план миграции
  7. 7. Процесс миграции конфигурации● Изменим настройки на проекте live.● Переренесём настройки с live active → local staging.● Обновим настройки на проекте local.● Проверим результат миграции конфигурации.
  8. 8. Находим настройки информации сайта, изменяем
  9. 9. Что у нас есть на local проекте.
  10. 10. Обновляем конфигурацию на local проекте
  11. 11. Находим файл конфигурации в файловом хранилище
  12. 12. Методы обновления файлов конфигурации● SCP● GIT, SVN, ...● FTP, SFTP● RSYNC● DRUSH RSYNC
  13. 13. Перемещаем файлы конфигурации между проектами● Перемещаем файлы между проектами live и local● Обновляем файловую конфигурацию с помощью утилиты drush, rsyncdrush rsync -d @sm.live:%conf_active @sm.local:%conf_active
  14. 14. Находим страницу синхронизации конфигурации
  15. 15. Находим изменённую группу конфигурации
  16. 16. Проверяем изменения
  17. 17. Команды Drush для конфигурации
  18. 18. Обновление конфигурацииdrush @sm.local config-importdrush @sm.local cc allОбновляем конфигурацию с файлового хранилища в активное хранилище
  19. 19. Проверяем результаты миграции
  20. 20. Смотрим результаты
  21. 21. Что касается разработчиков
  22. 22. Пример использования// Получаем название сайта.$site_name = variable_get(site_name, Drupal);// Изменяем название сайта на какое-нибудь другое.variable_set(site_name, This is the dev site.);// Загружаем набор данных, получаем название сайта.$config = config(core.site_information);$site_name = $config->get(site_name);// Изменяем и сохраняем.$config->set(site_name, My Awesome Site);$config->save();БылоСейчас
  23. 23. Пример конфигурационного файлаname: mediumlabel: Medium (220x220)effects:bddf0d06-42f9-4c75-a700-a33cafa25ea0:name: image_scaledata:width: 220height: 220upscale: 1weight: 0ieid: bddf0d06-42f9-4c75-a700-a33cafa25ea0core/modules/image/config/image.style.medium.yml
  24. 24. Пример описания структуры конфигурационного файла# Simple extended data types:# Human readable string that must be plain text and editable with a text field.label:type: stringlabel: Labeltranslatable: true# Internal Drupal pathpath:type: stringlabel: Path# Human readable string that can contain multiple lines of text or HTML.text:type: stringlabel: Texttranslatable: true
  25. 25. Другой примерimage.style.*:type: mappinglabel: Image stylemapping:name:type: stringlabel:type: labeleffects:type: sequencesequence:- type: mappingmapping:name:type: stringdata:type: image.effect.[%.parent.name]weight:type: integerieid:type: stringimage.schema.yml
  26. 26. Типы данных# Basic scalar data types from typed data.boolean:label: Booleanclass: DrupalCoreTypedDataTypeBooleanemail:label: Emailclass: DrupalCoreTypedDataTypeEmailinteger:label: Integerclass: DrupalCoreTypedDataTypeIntegerstring:label: Stringclass: DrupalCoreTypedDataTypeStringuri:label: Uriclass: DrupalCoreTypedDataTypeUrisystem.data_types.schema.yml.
  27. 27. Типизированные конфигурационные файлы$new_slogan = Great new site slogan;$typed_site_info = config_typed()->get(system.site);$typed_site_info->set(slogan, $new_slogan);Если вы не используете типизированную конфигурацию,просто используйте config(),что намного правильнее и быстрее.
  28. 28. Практика использованияИзбегайте множественную инициализацию объектов config в одной функции.Это сказывается на производительности.config(foo.bar)->set(foo, foo)->save();config(foo.bar)->set(bar, bar)->save();Лучшим решением будет инициализировать объект config один раз, провестис ним работу, сохранить.$config = config(foo.bar);$config->set(foo, foo);$config->set(bar, bar);$config->save();
  29. 29. Функциональная схема системы конфигурации
  30. 30. Схема миграции
  31. 31. Модуль переводов конфигурацииdrupal.org/project/config_translation
  32. 32. Добавляем перевод
  33. 33. Модуль инспектирования конфигурацииЭто позволяет инспектировать значения, структуры конфигураций.drupal.org/project/config_inspector
  34. 34. В виде дерева
  35. 35. В виде формыhttps://drupal.org/node/2010798
  36. 36. В виде PHP(raw)
  37. 37. Терминология● From - a site from, a live site.● To - a site to, a development site.● Environment, site - synonymous sometimes.● Active directory – Current site setting paces in the file system.● Staging directory – Data is stored there before importing.● File storage – Current site settings located in the file system.● Active storage - “Data base” storage, data that is used.
  38. 38. Ресурсы● Использование системы конфигурирования в Drupal 8http://goo.gl/g4nbn● Управление конфигурацией в Drupal 8http://goo.gl/tvz9I● Синхронизация сайтов Drupal. Staging в процессе разработкиhttp://goo.gl/ocLsb● Примеры использования.https://drupal.org/node/1809490#config-writing● Объяснение схем, информации(meta) систем конфигурированияhttps://drupal.org/node/1905070
  39. 39. Виктор Ликин @vlikinСистема управления конфигурацией в Drupal 8

×