Фичи н-н-нада? Или почему стоит использовать модуль 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/serveradministration/migraine •http://bit.ly/sLuWEg Использование hook_update в своем модуле Спасибо за внимание Фиделин Евгений, QArea Group eugene.fidelin@gmail.com Полезные ссылки: Модуль Features: http://drupal.org/project/features Справка по Features (англ): http://drupal.org/node/580052 Статья о Features (рус): http://drupal.ru/node/43875 Модуль Strongarm: http://drupal.org/project/strongarm