¿Qué agrega la "API de entidad" a la API de Drupal y por qué un módulo dependería de ella?

12

El módulo API de entidad amplía la API de entidad definida en Drupal. ¿En qué casos debe usar un módulo la API proporcionada desde ese módulo? ¿Los módulos que implementan nuevas entidades son más fáciles de escribir si dependen del módulo Entity API ?

Por "más fácil de escribir" quiero decir que los módulos que usan Entity API requerirían menos código para ser escrito en comparación con un módulo que no usa Entity API .

Leí la página del proyecto, pero aún no entiendo completamente la razón por la que prefiero crear un módulo que depende del módulo Entity API , en lugar de un módulo que depende solo del código central de Drupal. Entiendo que un módulo que extiende reglas e implementa una entidad debe usar el módulo Entity API ; en el primer caso, la razón también es que el módulo Reglas depende del módulo Entity API .

kiamlaluno
fuente
1
La página del proyecto que ha vinculado proporciona una visión general bastante específica de lo que hace el módulo. ¿Tiene preguntas específicas sobre por qué un módulo dependería de él además de lo que exponen?
jhedstrom
Si no usa el módulo Entity API, termina escribiendo un módulo como este proyecto de sandbox . Tenga en cuenta que este proyecto de sandbox no tiene pruebas y solo un contribuyente, mientras que Entity API tiene muchos de ambos.
Paul-m

Respuestas:

15

No está completo, pero aquí hay algunas ventajas que conozco:

  • Drupal core solo proporciona un EntityController para cargar entidades. Para guardar, actualizar y eliminar, debe escribirlo usted mismo o utilizar Entity API.
  • Puede exponer las propiedades base de sus entidades con hook_entity_property_info (), consulte privatemsg_entity_property_info () para ver un ejemplo. La ventaja de esto es que rules.module conoce las propiedades de su entidad y usted las lee y las escribe con reglas. Y también obtienes la integración de tokens de forma gratuita.
  • También puede proporcionarle automáticamente una IU administrativa para sus entidades
Berdir
fuente
¿Qué quieres decir con una interfaz de usuario de administrador? Algo de esto es manejado por el núcleo.
googletorp
2
Core proporciona una interfaz de usuario para configurar los campos y adjuntarlos a las entidades, la API de la entidad proporciona una interfaz de usuario para crear y administrar entidades para entidades personalizadas, el núcleo no hace nada de eso.
Berdir
1
sin olvidar el gran metadata_wrapper drupalcontrib.org/api/drupal/… que le permite acceder fácilmente a los valores del campo en código
mojzis
7

Integración de Vistas automáticas, IU de administrador, entidades exportables (todo esto es opcional). Además de una gran cantidad de cosas de sintaxis que no se convirtieron en D7 y que las necesita (genérico entity_save (), entity_create (), colocando su lógica personalizada en "clases de entidad" ...)

Además, los módulos (efq_views, reglas) hacen cosas realmente geniales con las propiedades.

Bojan Zivanovic
fuente
-1

creo que la entidad api (módulo) se eliminó básicamente del núcleo de drupal 7 antes de su lanzamiento porque se consideraba incompleta. Solo la entidad básica api CRUD funciona donde se dejó en el núcleo de drupal para su lanzamiento de GM.

skaught
fuente