O que a "API de entidade" adiciona à API do Drupal e por que um módulo depende disso?

12

O módulo API da entidade estende a API da entidade definida no Drupal. Em quais casos um módulo deve usar a API fornecida a partir desse módulo? Os módulos que implementam novas entidades são mais fáceis de serem gravados se eles dependem do módulo da API da entidade ?

Por "mais fácil de ser escrito", quero dizer que os módulos que usam a API de entidade exigiriam que menos código fosse gravado em comparação com um módulo que não usa a API de entidade .

Eu li a página do projeto, mas ainda não entendo completamente o motivo de preferir criar um módulo que depende do módulo API da entidade , em vez de um módulo que depende apenas do código principal do Drupal. Entendo que um módulo que estenda regras e implemente uma entidade deve usar o módulo da API da entidade ; no primeiro caso, o motivo também é que o módulo Rules depende do módulo API da entidade .

kiamlaluno
fonte
1
A página do projeto que você vinculou fornece uma visão geral bastante específica do que o módulo faz. Você tem perguntas específicas sobre por que um módulo dependeria dele, além do que elas estão dispostas?
jhedstrom
Se você não usa o módulo API da entidade, acaba escrevendo um módulo como este projeto de sandbox . Observe que este projeto de sandbox não possui testes e apenas um colaborador, enquanto a API de entidade possui muitos dos dois.
paul-m

Respostas:

15

Não está completo, mas aqui estão algumas vantagens que eu conheço:

  • O núcleo do Drupal fornece apenas um EntityController para carregar entidades. Para salvar, atualizar e excluir, você precisa gravá-lo ou usar a API da entidade.
  • Você pode expor as propriedades básicas de suas entidades com hook_entity_property_info (), consulte privatemsg_entity_property_info () para obter um exemplo. A vantagem disso é que rules.module conhece as propriedades da sua entidade e você as lê e grava com regras. E você também obtém integração de token gratuitamente.
  • Também pode fornecer automaticamente uma interface administrativa para suas entidades
Berdir
fonte
O que você quer dizer com interface do usuário de administrador? Parte disso é tratada pelo núcleo.
googletorp
2
O Core fornece uma interface do usuário para configurar os campos e anexá-los às entidades, a API da entidade fornece uma interface do usuário para criar e gerenciar entidades para entidades personalizadas, o núcleo não faz nada assim.
Berdir
1
para não esquecer o grande metadata_wrapper drupalcontrib.org/api/drupal/... que permite que você acesse facilmente os valores do campo no código
mojzis
7

Integração automática de visualizações, interface de administração, entidades exportáveis ​​(tudo isso é opcional). Além de muitas coisas de açúcar de sintaxe que não chegaram ao D7 e você precisa delas (generic entity_save (), entity_create (), colocando sua lógica personalizada em "classes de entidade" ...)

Além disso, os módulos (efq_views, rules) fazem coisas realmente legais com propriedades.

Bojan Zivanovic
fonte
-1

Eu acredito que a entidade api (módulo) foi basicamente removida do drupal 7 core antes do lançamento porque foi considerada incompleta. Somente a entidade básica api CRUD funciona quando deixada no drupal core para sua liberação GM.

skaught
fonte