Разработка и deploy drupal сайтов с помощью features

14
Разработка и deploy Drupal сайтов с помощью Features Фиделин Евгений, DrupalCamp Kiev 2012

Upload: eugene-fidelin

Post on 15-Jun-2015

1.725 views

Category:

Documents


2 download

DESCRIPTION

Как использовать модуль Features для быстрой разработки и деплоя сайтов на Drupal 7. Советы по использованию и обзор возможностей.

TRANSCRIPT

Page 1: Разработка и deploy Drupal сайтов с помощью Features

Разработка и deployDrupal сайтов

с помощью Features

Фиделин Евгений, DrupalCamp Kiev 2012

Page 2: Разработка и deploy Drupal сайтов с помощью Features

Конфигурации модулей хранятся в БД и не отделены от контента.

А значит:○ сложно переносить настройки не меняя

контент,○ сложно отслеживать изменение настроек,○ проблематично организовывать deploy и

командную работу.

Есть одна проблема при разработке сайтов

Page 3: Разработка и deploy Drupal сайтов с помощью Features

Есть одна проблема при разработке сайтов

Page 4: Разработка и deploy Drupal сайтов с помощью Features

Это решается с помощьюмодуля Features!

Features переносят конфигурации из БД в код специального модуля(ей).

А также:○ установка, контроль и откат изменений,○ удобный пользовательский интерфейс,○ создание библиотеки готовых решений,○ использование система контроля версий,○ интеграция с Drush.

Page 5: Разработка и deploy Drupal сайтов с помощью Features

Что можно переносить с помощью Features?

Из коробки:○ Content types, Fields,

Fieldgroup○ Taxonomy vocabularies○ User Roles, Permissions○ Menus & Menu links○ Languages○ Image styles○ Text formats and filters○ Variables (strongarm)○ Dependencies

Интегрированные модули:○ Views○ Flag○ Context○ Nodequeues

(fe_nodequeue)○ CKEditor profiles○ ... многие другие

И даже контент:○ Nodes, taxonomy terms,

users, files (uuid)

Page 6: Разработка и deploy Drupal сайтов с помощью Features

Давайте создадим новую Feature/admin/structure/features/create

Page 7: Разработка и deploy Drupal сайтов с помощью Features

Посмотрим, что у Feature внутриsites/all/modules/contrib/features

Feature представляет обычный модуль, реализующий специальные хуки.

name = Articlesdescription = Articles content type & viewcore = 7.xpackage = Features Contentversion = 7.x-1.0project = articlesdependencies[] = featuresdependencies[] = strongarmdependencies[] = taxonomydependencies[] = viewsfeatures[field][] = node-article-bodyfeatures[field][] = node-article-field_imagefeatures[field][] = node-article-field_tagsfeatures[field][] = node-page-bodyfeatures[node][] = articlefeatures[taxonomy][] = tagsfeatures[views_view][] = articles

/** * Implements hook_node_info(). */function articles_node_info() { $items = array( 'article' => array( 'name' => t('Article'), 'base' => 'node_content', 'description' => t('Use <em>articles</em> for time-sensitive content like news, press releases or blog posts.'), 'has_title' => '1', 'title_label' => t('Title'), 'help' => '', ), ); return $items;}

articles.info articles.features.inc

Page 8: Разработка и deploy Drupal сайтов с помощью Features

Управление Features/admin/structure/features

Feature не установлена

Feature активна

Компоненты Feature изменены

click

Page 9: Разработка и deploy Drupal сайтов с помощью Features

Revert или Recreate/admin/structure/features/articles

БДКод

модуляRevert

Recreate

Page 10: Разработка и deploy Drupal сайтов с помощью Features

Смотрим, что же изменилось/admin/structure/features/articles

Модули Diff и Features override позволяют увидеть свойства, которые были изменены

Page 11: Разработка и deploy Drupal сайтов с помощью Features

Как использовать Features.Основные шаги

● Создайте новый функционал и добавьте его в Feature.

● Редактируйте, меняйте функционал и отслеживайте изменения в Feature.

● Делайте Recreate если новый обновленный функционал нужно сохранить в Feature.

● Делайте Revert если нужно отменить изменения на сайте.

● Следите чтобы у вас были актуальные версии всех Features.

Page 12: Разработка и deploy Drupal сайтов с помощью Features

Пару советов из личного опыта

● Объединение компонентов в одну Feature○ неделимый функционал,○ логическая связь или зависимость,○ минимизация одновременного изменения,

несколькими разработчиками,○ объединяйте Feature в Packages.

● Если Feature не помогает Revert○ убедится что компонент не относятся к

отключенному модулю,○ попробовать изменить напрямую в админке

модуля или БД,○ если проблема с Views - сделать Revert c

admin/structure/views.

Page 13: Разработка и deploy Drupal сайтов с помощью Features

Используйте Features - они экономят ваше время

Page 14: Разработка и deploy Drupal сайтов с помощью Features

Спасибо за внимание!Есть вопросы?

Фиделин Евгений [email protected]: eugene.fidelinfacebook.com/eugene.fidelin