Разработка и deploy Drupal сайтов с помощью Features.
1. Разработка и deploy
Drupal сайтов
с помощью Features
Фиделин Евгений, DrupalCamp Kiev 2012
2. Есть одна проблема при
разработке сайтов
Конфигурации модулей хранятся в
БД и не отделены от контента.
А значит:
○ сложно переносить настройки не меняя
контент,
○ сложно отслеживать изменение настроек,
○ проблематично организовывать deploy и
командную работу.
4. Это решается с помощью
модуля Features!
Features переносят конфигурации из
БД в код специального модуля(ей).
А также:
○ установка, контроль и откат изменений,
○ удобный пользовательский интерфейс,
○ создание библиотеки готовых решений,
○ использование система контроля версий,
○ интеграция с Drush.
5. Что можно переносить с помощью
Features?
Из коробки: Интегрированные модули:
○ Content types, Fields, ○ Views
Fieldgroup ○ Flag
○ Taxonomy vocabularies ○ Context
○ User Roles, Permissions ○ Nodequeues
○ Menus & Menu links (fe_nodequeue)
○ Languages ○ CKEditor profiles
○ Image styles ○ ... многие другие
○ Text formats and filters
○ Variables (strongarm) И даже контент:
○ Dependencies ○ Nodes, taxonomy terms,
users, files (uuid)
10. Смотрим, что же изменилось
/admin/structure/features/articles
Модули Diff и Features override позволяют
увидеть свойства, которые были изменены
11. Как использовать Features.
Основные шаги
● Создайте новый функционал и добавьте
его в Feature.
● Редактируйте, меняйте функционал и
отслеживайте изменения в Feature.
● Делайте Recreate если новый
обновленный функционал нужно
сохранить в Feature.
● Делайте Revert если нужно отменить
изменения на сайте.
● Следите чтобы у вас были актуальные
версии всех Features.
12. Пару советов
из личного опыта
● Объединение компонентов в одну Feature
○ неделимый функционал,
○ логическая связь или зависимость,
○ минимизация одновременного изменения,
несколькими разработчиками,
○ объединяйте Feature в Packages.
● Если Feature не помогает Revert
○ убедится что компонент не относятся к
отключенному модулю,
○ попробовать изменить напрямую в админке
модуля или БД,
○ если проблема с Views - сделать Revert c
admin/structure/views.