Je sais que nous pouvons utiliser hook_entity_update()
hook pour faire quelque chose quand une entité est mise à jour. Mais existe-t-il un événement pour écouter les mises à jour/suppressions de nœuds, ou d'autres entités telles que d'ailleurs?
Vous ne pouvez pas écouter un événement. Vous pouvez utiliser un hook ou implémenter une méthode comme postSave () dans votre entité personnalisée.
Voici l'ordre des hooks et autres événements qui se produisent lors d'une sauvegarde d'entité:
Entity::preSave()
est appelé sur les objets d'entité, et FieldItemListInterface::preSave()
sur les objets de champ.hook_ENTITY_TYPE_presave()
hook_entity_presave()
Entity::postSave()
est appelé sur l'objet entité.hook_ENTITY_TYPE_insert()
(nouveau) ou hook_ENTITY_TYPE_update()
(mise à jour)hook_entity_insert()
(nouveau) ou hook_entity_update()
(mise à jour)Idéalement, vous devriez écouter les événements liés à l'entité, mais ceux-ci ne sont pas encore prêts. Voir "Ajouter des événements pour faire correspondre les hooks d'entité" .
Pour l'instant, si vous voulez rester à l'écart des hooks, vous pouvez utiliser un module contrib: Hook Event Dispatcher
Un node
est un type d'entité, donc hook_ENTITY_TYPE_update(..
est le même que hook_node_update(..
,
function hook_node_update(Drupal\Core\Entity\EntityInterface $entity) {
//$entity->bundle() - 'article' 'page'
}
ou
function hook_customentity_update(Drupal\Core\Entity\EntityInterface $entity{
//$entity->bundle() - 'awesome_entity_bundle'
}