Utiliser un hook dans un module Drupal

Drupal 8

Utiliser un hook dans un module Drupal

Soumis par Antoine le sam 11/04/2020 - 16:43

Pour Utiliser un hook dans un module, il faut suivre les étapes suivantes :

  1. Récupérer la documentation du hook
  2. Copier le hook depuis l'endroit où il a été défini
  3. Renommer le hook
  4. Ajouter votre code

Récupérer la documentation du hook

La doc de drupal liste l'ensemble des hook disponibles. Cette doc conseille aussi de recopier la documentation des hook. Pour cela, il faut trouver le fichier de doc qui s'appelle hook.api.php dans le répertoire /core/lib/* . Comme ce répertoire est immense, il est préférable de chercher le tableau qui liste les hook et de suivre le lien de la colonne location. 

Copier le hook depuis l'endroit où il a été défini

Une fois le hook trouvé, il ne reste plus qu'à le recopier dans votre module. La plupart du temps, cela sera fait dans le fichier nommodule.module. Attention des hooks qui ne doivent être exécuter que lors de l'installation ou la désinstallation d'un module doivent être placés dans le fichier nommodule.install. Enfin certainshook peuvent être utilisé par des thèmes et être copié dans le fichier nomtheme.theme. C'est le cas des hook qui modifie le css ou le js.

Renommer le hook

Le nom d'un hook commence toujours par HOOK. Il faut remplacer ce HOOK par le nom machine de votre module, c'est à dire, celui qui prefixe les fichiers info.yml, libraries.yml...

Ensuite certains hook contiennent des mots en majuscule. Ces mots servent à préciser le champ d'action du hook. Par exemple le hook "hook_entity_delete" est exécuté à chaque fois qu'une entité est supprimé. Il existe un hook "hook_ENTITY_TYPE_delete" qui va permettre d'exécuté du code seulement quand un certain type d'entité est supprimé. Par exemple, le module "menu_link_content" contient un hook "menu_link_content_menu_delete" qui est exécuté uniquement quand un menu est supprimé.

Ajouter votre code

Il ne reste plus qu'à mettre votre code.

Version