Фичи н-н-нада?Или почему стоит использовать модуль Features
Фиделин Евгений
http://donetsk.drupal.ua
Фичи н-н-нада?
Или почему стоит использовать модуль Features
http://drupal.org/project/features
Доклад подготовил: Фиделин Евгений, QArea Group
Как дорабатывать «живой» сайт?
Редактируем «по-живому» Большая цена ошибки Только для маленьких изменений Только для небольших сайтов
Редактируем копию Ручной перенос настроек в БД Нужен собственный модуль для переноса
Как разрабатывать крупный проект?
Организуем процесс разработкиDevelopment — Staging — Production
Интегрируем все изменения с системами контроля версий:
Drupal хранит множество настроек в БДНеобходимо обновлять настройки без изменений
контента
Что умеет модуль Features?
Создание модуля для переноса:• Content Type, CCK fields & fieldgroups, Views, Menus,
Panels, User roles & permissions, Imagecache, Module dependencies
• Variables (с помощью Strongarm)
• Blocks, Taxonomy vocabularies, Nodequeue (с помощью Features Extra)
• Nodes, Users, Taxonomy (с помощью UUID)
Установка, контроль и откат изменений
Интеграция с Drush
Создаем свою Feature
Создаем тип материала Country и добавляем CCK поля (admin/content/types/add)
Создаем свою Feature
Создаем Imagecache flag_preview (admin/build/imagecache)
Настроим pathauto (admin/build/path/pathauto)
Создаем свою Feature
Создадим роль Webmaster и настроим права доступа(admin/user/permissions)
Создаем свою Feature
Создаем вид countries (admin/build/views/add)
Создаем свою Feature
Создаем модуль countries (Country listing)(sites/all/modules/country/includes)
Создаем свою Feature
Создаем Features Country (admin/build/features/create)
Создаем свою Feature
Выбираем компоненты:Сontent types – Country
CCK – Country:*
Views – countries
Roles – webmaster
Permissions – node: *
Imagecache presets – flag_preview
Dependencies – Country listing
Скачиваем feature в sites/all/modules/country
Как устроена Feature
Устроена как обычный модуль
Устанавливать нужно только из admin/build/features
.info – содержит список всех компонентов и зависимостей
.module – подключает .features.inc
.features.inc – содержит хуки для создания компонентов
/includes/contries – здесь лежит наш модуль
Управление Features
Включаем нашу feature (admin/build/features)
Feature активна
Компонент feature изменен
Управление Features
Контроль изменений feature:
- вернуть к настройках сохраненным в коде
- создать новую версию содержащую изменения
Преимущества модуля Features
Перенос настроек хранящихся в БД
Контроль и управление изменениями на сайте
Ускорение создания модулей
Создание архива наработок
Интеграция с системами контроля версийНизкое время неактивности сайта при обновлении
Возможность переноса контента
Альтернативные решения
Скрипт migraine для синхронизации БД•Отдельно синхронизирует контент и конфигурацию, умеет находить diff-ом несоответствия в структуре таблиц и сам разбирается с таблицами, в которые данные должны вставляться инкрементно
•http://shearersoftware.com/software/server-administration/migraine
•http://bit.ly/sLuWEg
Использование hook_update в своем модуле
Спасибо за внимание
Фиделин Евгений, QArea Group
Полезные ссылки:Модуль Features: http://drupal.org/project/features
Справка по Features (англ): http://drupal.org/node/580052
Статья о Features (рус): http://drupal.ru/node/43875
Модуль Strongarm: http://drupal.org/project/strongarm