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.