Я працюю над документацією Entity API тут: https://drupal.org/developing/api/entity .
Питання занадто велике, щоб детально відповісти, і це залежить від того, чи потрібні вам вмісти або конфігураційні сутності. Припустимо, що ви хочете, щоб об'єкти вмісту (які зберігаються в базі даних, можуть бути керуючими / переглядаються / ..., деталі у посиланні вище), вам потрібно зробити щось подібне. Документація, зв'язана вище, врешті-решт охопить кожен крок, включаючи підручники, прямо зараз , він охоплює лише перші кроки.
- Надайте клас сутності та додайте необхідні примітки, щоб викрити його як сутність.
- Надайте необхідну таблицю (таблицю), вам не доведеться багато змінювати, якщо у вас вже є схема 7.x, але ви хочете додати стовпець uuid і, можливо, лонгкод, якщо ваша організація може мати мову / бути перекладною. Дивіться приклад вузла, пов'язаний на етапі, якщо ви хочете зробити деякі базові поля (властивості) перекладаються або переглянуті, на даний момент вам потрібно надати необхідні таблиці самостійно.
- Надайте визначення базового поля у вашому методі baseFieldDefinitions (). . Зауважте, що спосіб роботи це зміниться в https://drupal.org/node/2047229 (від масивів до класів).
- Реалізуйте необхідні методи до / після збереження / завантаження / видалення, якщо у вас є власна логіка, яка повинна відбутися, наприклад, перед збереженням об'єкта (наприклад, оновлення зміненої часової позначки).
- Реалізуйте контролер доступу, якщо у вас є нетривіальна логіка доступу, і замініть методи checkAccess () та checkCreateAccess () або вкажіть у вашій примітці admin_permission, якщо у вас є лише один дозвіл, який дозволяє отримати повний доступ.
- Рекомендується, хоча технічно не потрібно надавати інтерфейс для вашого класу сутності (наприклад, NodeInterface for Node), який включає корисні (як правило, get / set / isSomething ()) для базових полів, щоб ви могли вводити підказку на інтерфейс і отримати автоматичне завершення цих методів.
Залежно від того, що вам потрібно, також будуть подальші кроки, такі як визначення необхідних форм, можливо, контролер візуалізації тощо, але це, мабуть, окремі запитання, якщо вам потрібна додаткова інформація.
Примітки:
- Суб'єкти Config в основному схожі, за винятком того, що вам потрібно використовувати контролер зберігання конфігурацій ( https://drupal.org/node/2119905 це полегшить), вам не потрібно визначати схеми таблиць (очевидно), але вам потрібно надати файл конфігураційної схеми, див., наприклад, файли для таксономічних словників або типів вузлів.
- Суб'єкти вмісту не мають своїх базових полів, визначених як загальнодоступні або захищені властивості, натомість ними автоматично керують властивості значень та полів. Доступ до них можна отримати через get () / set () або відповідними магічними методами. (заголовок $ node-> дорівнює $ node-> get ('title')).
- Допомога щодо документації там буде дуже вітається. Я створив базовий контент для вмісту / структури, який я хотів би мати, тому просто створіть нову сторінку і розпочніть роботу, наприклад, мені також цікаво спростити підручники для конфігураційних об'єктів, тут є вже один, який я після готовності перейде до документації на сутність: https://drupal.org/node/1809494
- У Core є досить велика кількість реалізацій об'єкта вмісту, якщо ви хочете побачити робочі приклади: Node, User, Term, Comment, CustomBlock, ... як пояснюється стаття, пов'язана на кроці 1, ви завжди можете знайти типи сутності, надані модуль в просторі імен Entity.
- @fago щойно провів презентацію про Entity API у DrupalCamp Vienna у ці вихідні, висвітлює багато того, що я написав тут та багато іншого.