Kozhemyakin dcm2011 1

664 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
664
On SlideShare
0
From Embeds
0
Number of Embeds
240
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Kozhemyakin dcm2011 1

  1. 1. Кожемякин Артём Дмитриевич Технический директор (совладелец) Исполнительный директор (совладелец) Эксперт консультант [ интернет магазин ] [ образовательный центр ] [ поставщик и интегратор ]
  2. 2. Организатор конференции DrupalConf 2011
  3. 4. Бронзовый спонсор: Генеральный информационный спонсор: drupal.ru
  4. 5. Пользователь Материал Термин такс. Тип мат. 1 Тип мат. 2 Тип мат. N Заказ в Ubercart ……
  5. 6. Пользователь Материал Термин такс. Тип мат. 1 Тип мат. N Заказ в Ubercart …… Сущность Словарь. 1 Словарь. N Типы сущностей Бандлы
  6. 7. Drupal 6 Drupal 7 Пользователь Материал Термин такс. Тип мат. 1 Тип мат. 2 Тип мат. N Заказ в Ubercart …… Сущность Пользователь Материал Термин такс. Заказ в Ubercart …… Словарь 1 Словарь N Тип мат. 1 Тип мат. N
  7. 8. <ul><li>Возможность «из коробки» расширять с помощью различных полей: </li></ul><ul><ul><li>Пользователей (замена модулю Profile). </li></ul></ul><ul><ul><li>Материалы (замена модулю CCK). </li></ul></ul><ul><ul><li>Термины таксономии в зависимости от словаря. </li></ul></ul><ul><ul><li>Комментарии к материалам. </li></ul></ul><ul><li>Возможность создать тип поля 1 раз и использовать его в неограниченном числе бандлов разных типов сущностей в дальнейшем. </li></ul>
  8. 9. <ul><li>Новый уровень абстракции. </li></ul><ul><ul><li>Устранение неприятной дилеммы «Реализовать ли X как тип материала или как самостоятельную единицу». </li></ul></ul><ul><ul><li>Единый интерфейс для написания модулей расширяющих возможности сразу всех (или нескольких) типов сущностей. </li></ul></ul><ul><li>Возможность использовать множество сторонних модулей для расширения возможностей своих типов сущностей. </li></ul><ul><ul><ul><li>Field API + Field UI для расширения любого типа сущностей механизмом полей. </li></ul></ul></ul><ul><ul><ul><li>Entity API для автоматического оснащения любого типа сущностей CRUD интерфейсом и интеграции с Futures . </li></ul></ul></ul><ul><ul><ul><li>Bundle Inherit API для возможности реализации иерархической системы бандлов внутри любого типа сущности и их наследования. </li></ul></ul></ul><ul><ul><ul><li>… </li></ul></ul></ul>
  9. 10. <ul><li>Определить hook_entity_info() с минимальным набором ключей: </li></ul><ul><ul><li>‘ label’ – “Human readable” название сущности ( переведенное). </li></ul></ul><ul><ul><li>‘ controller class’ – Класс контроллера сущности. </li></ul></ul><ul><ul><li>‘ uri callback’ – Функция обратного вызова принимающая в качестве аргумента сущность и возвращающая фрагменты ее URL ( array(‘path’ => ‘’)). </li></ul></ul>
  10. 11. <ul><li>Определить класс контроллер типа сущности реализующий интерфейс DrupalEntityControllerInterface . </li></ul><ul><ul><li>__construct ($entityType); </li></ul></ul><ul><ul><li>resetCache (array $ids = NULL); </li></ul></ul><ul><ul><li>load ($ids = array(), $conditions = array()); </li></ul></ul>
  11. 12. <ul><li>Разделение на поля ( fields) и экземпляры полей (fields instances ) </li></ul><ul><li>Абстрактное хранилище. </li></ul><ul><li>По умолчанию – каждое поле в своей таблице в которой хранятся все его экземпляры. </li></ul>
  12. 13. <ul><li>Позволяет наследовать любые типы сущностей создавая иерархическую структуру. </li></ul><ul><li>Состоит из 2х модулей: </li></ul><ul><ul><li>bundle_inherit – модуль предоставляющий API для оснащения других сущностей механизмом наследования </li></ul></ul><ul><ul><li>bundle_inherit_node – реализует наследование в модуле node с помощью Bundle Inherit API </li></ul></ul>
  13. 14. Типы наследования. Мягкое Строгое Копирование экземпляров полей из родительского в дочерний бандл. + + Поддержка синхронизации на всем времени жизни бандла. - +
  14. 15. Кожемякин Артём [email_address] www.drupal.org/project/bundle_inherit lemark.habrahabr.ru
  15. 16. Организатор конференции DrupalConf 2011
  16. 18. Бронзовый спонсор: Генеральный информационный спонсор: drupal.ru

×