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 .


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

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.


-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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.