Drupal 8 & Drupal 9 - Changer l'ordre d'exécution des hooks

Posté le Vendredi 5 mars 2021 - 14:46

Pour un projet, je souhaiter alterer un type d'entité via HOOK_entity_type_alter. Problème un module du core effectuait une modification sur ce même type d'entité, et son hook était exécuté après celui de mon module. Les modifications de mon module n'étaient donc pas prise en compte.

Il y a plusieurs possibilités pour résoudre ce soucis, celle que j'ai utilisé ici est de forcer ce hook à être exécuté en dernier. Ceci en utilisant le HOOK_module_implements_alter (dans cet exemple, le nom machine de mon module est kgaut [oui, c'est vendredi, je ne suis pas très inspiré]).

function kgaut_module_implements_alter(&$implementations, $hook) {
  switch ($hook) {
    case 'entity_type_alter':
      $group = $implementations['kgaut'];
      unset($implementations['kgaut']);
      $implementations['kgaut'] = $group;
      break;
  }
}

Ce bout de code force le hook entity_type_alter à utiliser l'implémentation du module kgaut en dernier (et après donc toutes les autres implémentations des autres modules)

Aller plus loin ?

 

Commentaires

Why do we have to spend money to buy things that are available and free? The Impossible Game is a website that has a lot of games suitable for many ages. They will give you the most relaxing time, and it's completely FREE for you!

Ajouter un commentaire

Ne sera pas publié

CAPTCHA Désolé, pour ça, mais c'est le seul moyen pour éviter le spam...