it-swarm-eu.dev

Doporučené postupy pro vytváření modulů pomocí tříd

Chci začít budovat své moduly jako třídy nyní, když jsou líné/automatické načítání v Drupal 7, a rád bych se podíval na některé moduly (přispět nebo jádro), které dělají skvělá práce.

Existuje kreativní způsob, jak integrovat třídu jako háčky? Implementuji každou funkci jako modul ctools?

Všichni kolemjdoucí by si měli uvědomit, že D7 má nové files[] prohlášení v modulu .info soubory pro automatické/líné načítání tříd/rozhraní: Zápis .info souborů (Drupal 7.x) .

Následující je dobré přečíst, jak získat motivace a konstituci (jak to bylo) z Drupal komunita Drupal programování z objektově orientované perspektivy .

19
electblake

Modul není třída by Crell je to, co byste si měli přečíst jako první.

Největší OOP část v Drupal 7) je nová abstrakční vrstva databáze (navržená stejným Crellem a dalšími), která implementuje mnoho vzorů, které mohou a měly by být znovu použit.

Například:

Něco, co je stále diskutováno kontroverzně je Skrývání informací . DBTNG implementuje to tím, že chrání vlastnosti třídy a znemožňuje přímý přístup. Na druhé straně máme hook_query_alter () a lze je měnit téměř libovolně různými metodami referenčním getter .

16
Berdir

To je zajímavá otázka.

Myšlenka modulu Drupal jako třída je velmi zajímavá). Avšak i v modulech D7 jednoduše implementujte funkce háku, které jsou kontrolovány jménem, ​​takže i když pro svůj modul vytvoříte třídu, Stále je třeba implementovat funkce zavěšení, aby je vyvolaly.

Mnoho modulů však interně používá třídy a prostřednictvím těchto tříd odhaluje funkčnost. Nejviditelnějším příkladem jsou názory. Takže to může být dobré místo k pohledu. Uvědomte si však, že mnoho modulů používá třídy svým způsobem, takže to, co se naučíte při pohledu na pohledy, nemusí být vždy použitelné.

3
Jeremy French

Entity API (modul přispívání) vám umožňuje deklarovat „třídu entity“ pro každý typ entity, takže veškerý kód související s vaší entitou (vytvoření, načtení, uložení, přístup atd.) Může jít do třídy (viz Organic Skupiny to například dělají).

To znamená, že to nepřekračujte. pluginy ctools jsou dobrá věc, když je potřebujete (píšete další pohledy, panely nebo pravidla), ale používání tříd všude jen pro ideologickou čistotu vám nebude moc dobré.

2
Bojan Zivanovic