Cosa aggiunge “Entity API” all'API Drupal e perché un modulo dovrebbe dipendere da esso?


12

Il modulo API Entity estende l'API entità definita in Drupal. In quali casi un modulo dovrebbe usare l'API fornita da quel modulo? I moduli che implementano nuove entità sono più facili da scrivere se dipendono dal modulo API Entity ?

Per "più facile da scrivere" intendo che i moduli che utilizzano Entity API richiederebbero meno codice da scrivere rispetto a un modulo che non utilizza Entity API .

Ho letto la pagina del progetto, ma ancora non capisco completamente il motivo per preferire la creazione di un modulo che dipende dal modulo API Entity , piuttosto che un modulo che dipende solo dal codice core Drupal. Comprendo che un modulo che estende le regole e implementa un'entità dovrebbe usare il modulo API Entity ; nel primo caso, il motivo è anche che il modulo Regole dipende dal modulo API Entità .


1
La pagina del progetto che hai collegato offre una panoramica abbastanza specifica di ciò che fa il modulo. Hai domande specifiche sul perché un modulo dipenderebbe da esso oltre a quello che presentano?
jhedstrom,

Se non usi il modulo API Entity, finisci per scrivere un modulo come questo progetto sandbox . Si noti che questo progetto sandbox non ha test e solo un collaboratore, mentre l'API Entity ne ha molti di entrambi.
paul-m,

Risposte:


15

Non completo, ma ecco alcuni vantaggi che conosco:

  • Drupal core fornisce solo un EntityController per il caricamento di entità. Per salvare, aggiornare ed eliminare, è necessario scriverlo da soli o utilizzare l'API Entity.
  • Puoi esporre le proprietà di base delle tue entità con hook_entity_property_info (), vedi privatemsg_entity_property_info () per un esempio. Il vantaggio di questo è che rules.module conosce le proprietà dell'entità e le leggi e le scrivi con le regole. E ottieni anche l'integrazione token gratuitamente.
  • Può anche fornirti automaticamente un'interfaccia utente amministrativa per le tue entità

Cosa intendi per interfaccia utente amministratore? Alcuni di questi sono gestiti dal core.
googletorp

2
Il core fornisce un'interfaccia utente per configurare i campi e collegarli alle entità, l'API entità fornisce un'interfaccia utente per creare e gestire entità per entità personalizzate, il core non fa nulla del genere.
Berdir

1
per non dimenticare il grande metadata_wrapper drupalcontrib.org/api/drupal/… che ti consente di accedere facilmente ai valori del campo nel codice
mojzis

7

Integrazione automatica di Views, UI di amministrazione, entità esportabili (tutto questo è facoltativo). Inoltre molte cose sulla sintassi dello zucchero che non sono state trasformate in D7 e ne hai bisogno (generic entity_save (), entity_create (), inserendo la tua logica personalizzata in "classi di entità" ...)

Inoltre, i moduli (efq_view, regole) fanno cose davvero interessanti con le proprietà.


-1

credo che l'entità api (modulo) sia stata sostanzialmente rimossa dal core di drupal 7 prima del rilascio perché è stata considerata incompleta. Solo l'entità di base api CRUD funziona se lasciata nel core di drupal per il suo rilascio GM.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.