Was fügt die Entity-API der Drupal-API hinzu und warum würde ein Modul davon abhängen?

12

Das Entitäts-API- Modul erweitert die in Drupal definierte Entitäts-API. In welchen Fällen sollte ein Modul die von diesem Modul bereitgestellte API verwenden? Sind Module, die neue Entitäten implementieren, einfacher zu schreiben, wenn sie vom Entity-API- Modul abhängen ?

Mit "einfacher zu schreiben" meine ich, dass Module, die die Entity-API verwenden , weniger Code benötigen als Module, die die Entity-API nicht verwenden .

Ich habe die Projektseite gelesen, verstehe aber immer noch nicht ganz, warum ich es vorziehen soll, ein Modul zu erstellen, das vom Entity-API- Modul abhängt , anstatt ein Modul, das nur vom Drupal- Kerncode abhängt . Ich verstehe, dass ein Modul, das Regeln erweitert und eine Entität implementiert, das Entitäts-API- Modul verwenden sollte. Im ersten Fall liegt der Grund auch darin, dass das Modul Regeln vom Entity-API- Modul abhängt .

kiamlaluno
quelle
1
Die von Ihnen verknüpfte Projektseite bietet einen ziemlich genauen Überblick über die Funktionen des Moduls. Haben Sie spezielle Fragen, warum ein Modul davon abhängt, als was es dort darstellt?
JHEDSTROM
Wenn Sie das Entity-API-Modul nicht verwenden, schreiben Sie am Ende ein Modul wie dieses Sandbox-Projekt . Beachten Sie, dass dieses Sandbox-Projekt keine Tests und nur einen Mitwirkenden hat, während die Entity-API über viele von beiden verfügt.
Paul-M

Antworten:

15

Nicht vollständig, aber hier sind einige Vorteile, die ich kenne:

  • Drupal Core bietet nur einen EntityController zum Laden von Entitäten. Zum Speichern, Aktualisieren und Löschen müssen Sie diese entweder selbst schreiben oder die Entity-API verwenden.
  • Sie können die Basiseigenschaften Ihrer Entitäten mit hook_entity_property_info () verfügbar machen. Ein Beispiel finden Sie unter privatemsg_entity_property_info () . Dies hat den Vorteil, dass rules.module Ihre Entitätseigenschaften kennt und Sie sie mit Regeln lesen und schreiben. Außerdem erhalten Sie die Token-Integration kostenlos.
  • Es kann Ihnen auch automatisch eine administrative Benutzeroberfläche für Ihre Entitäten zur Verfügung stellen
Berdir
quelle
Was meinst du mit einer Admin-Benutzeroberfläche? Ein Teil davon wird vom Kern übernommen.
googletorp
2
Core bietet eine Benutzeroberfläche zum Konfigurieren von Feldern und zum Anhängen an Entitäten. Die Entitäts-API bietet eine Benutzeroberfläche zum Erstellen und Verwalten von Entitäten für benutzerdefinierte Entitäten. Core macht nichts dergleichen.
Berdir
1
Nicht zu vergessen der großartige metadata_wrapper drupalcontrib.org/api/drupal/… , mit dem Sie einfach auf die Feldwerte im Code
zugreifen können
7

Automatische Ansichten-Integration, Administrator-Benutzeroberfläche, exportierbare Entitäten (dies alles ist optional). Plus eine Menge Syntaxzuckerdinge, die es nicht in D7 geschafft haben und die Sie brauchen (generisch entity_save (), entity_create (), Ihre benutzerdefinierte Logik in "Entitätsklassen" setzen ...)

Außerdem machen Module (efq_views, rules) wirklich coole Dinge mit Eigenschaften.

Bojan Zivanovic
quelle
-1

Ich glaube, das Entity-API (Modul) wurde vor der Veröffentlichung im Wesentlichen aus Drupal 7 Core entfernt, da es als unvollständig angesehen wurde. Nur die grundlegenden Entity-API-CRUD-Funktionen wurden für die GM-Veröffentlichung in Drupal Core belassen.

geschafft
quelle