Eindelijk OOP-implementatie voor Drupal hooks

Eén van de belangrijkste eigenschappen van het Drupal CMS is flexibiliteit. Alles kan en alles kan anders. Met de komst van versie 8 heeft Drupal object georiënteerd programmeren (of OOP) omarmd. Helaas bleven de vele Drupal-hooks nog lang hangen in het procedurele tijdperk in het bestand modulenaam.module. Maar met ingang van Drupal versie 11.2 zijn ook de hooks beschikbaar voor programmeurs middels een class.
Programmeurs van Drupal-modules kunnen de vele hooks ondertussen wel dromen. Even een formulier aanpassen middels een hook. Of even eigen gegevens in een tabel wegschrijven als een node wordt bijgewerkt. Of wat eigen modulecode aanhaken bij de cron-hook.
Vanaf Drupal 11.2 kunnen functies in een class via PHP-attributes aangemerkt worden als een hook-implementatie. Zo'n functie ziet er dan bijvoorbeeld zo uit:
#[Hook('user_cancel')]
public function userCancel($edit, UserInterface $account, $method) {
// DO STUFF
}
Om het voor alle programmeurs duidelijk te maken dat er bepaalde Drupal-hooks worden geïmplementeerd door een module, zorgt Drupal voor een gestandaardiseerde structuur. Classes die hooks implementeren komen in de directory src/Hooks.
Met ingang van de major versie Drupal 12 (halverwege 2026) vervalt de ondersteuning voor procedurele Drupal-hooks.