Co „Entity API” dodaje do Drupal API i dlaczego moduł miałby na nim polegać?


12

Moduł Entity API rozszerza API encji zdefiniowane w Drupal. W jakich przypadkach moduł powinien korzystać z interfejsu API dostarczonego z tego modułu? Czy moduły, które implementują nowe jednostki, są łatwiejsze do napisania, jeśli zależą od modułu interfejsu API jednostki ?

Przez „łatwiejszy do napisania” mam na myśli, że moduły korzystające z Entity API wymagałyby mniej kodu do napisania w porównaniu do modułu, który nie używa Entity API .

Czytam stronę projektu, ale wciąż nie rozumiem całkowicie powodu, dla którego wolę tworzyć moduł, który zależy od modułu API Entity , niż moduł zależny tylko od kodu podstawowego Drupal. Rozumiem, że moduł rozszerzający reguły i implementujący jednostkę powinien używać modułu Entity API ; w pierwszym przypadku przyczyną jest również to, że moduł Reguły zależy od modułu API Entity .


1
Strona projektu, którą połączyłeś, zapewnia dość szczegółowy przegląd tego, co robi moduł. Czy masz konkretne pytania dotyczące tego, dlaczego moduł byłby od niego zależny, inaczej niż to, co tam przedstawiają?
jhedstrom

Jeśli nie używasz modułu Entity API, kończy się pisanie modułu takiego jak ten projekt piaskownicy . Zauważ, że ten projekt piaskownicy nie ma testów i tylko jeden współautor, podczas gdy Entity API ma wiele z obu.
paul-m

Odpowiedzi:


15

Nie jest kompletny, ale oto kilka zalet, które znam:

  • Rdzeń Drupal zapewnia tylko EntityController do ładowania encji. Aby zapisać, zaktualizować i usunąć, musisz napisać go samodzielnie lub użyć interfejsu API jednostki.
  • Możesz ujawnić podstawowe właściwości swoich bytów za pomocą hook_entity_property_info (), zobacz przykład privatemsg_entity_property_info () . Zaletą tego jest to, że rules.module zna twoje właściwości encji, a ty czytasz i piszesz je z regułami. Otrzymujesz również integrację tokenów za darmo.
  • Może również automatycznie udostępniać administracyjny interfejs użytkownika dla twoich podmiotów

Co rozumiesz przez interfejs administratora? Niektóre z nich są obsługiwane przez rdzeń.
googletorp

2
Rdzeń zapewnia interfejs do konfigurowania pól i dołączania ich do encji, encja API zapewnia interfejs do tworzenia encji i zarządzania nimi dla encji niestandardowych, core nie robi nic takiego.
Berdir,

1
nie zapominając o świetnym metadata_wrapper drupalcontrib.org/api/drupal/…, który pozwala na łatwy dostęp do wartości pola w kodzie
mojzis

7

Automatyczna integracja widoków, interfejs administratora, podmioty eksportowane (wszystko to jest opcjonalne). Plus wiele rzeczy z cukrem składniowym, które nie dostały się do D7 i są one potrzebne (ogólne entity_save (), entity_create (), umieszczając niestandardową logikę w „klasach jednostek” ...)

Dodatkowo moduły (efq_views, rules) robią naprawdę fajne rzeczy z właściwościami.


-1

wierzę, że interfejs API (moduł) encji został zasadniczo usunięty z rdzenia drupal 7 przed wydaniem, ponieważ został uznany za niekompletny. Jedynie podstawowe funkcje CRUD interfejsu api encji zostały pozostawione w rdzeniu drupal dla wydania GM.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.