call_trigger() ne permet pas de passer $object

Bonjour à tous,

J’ai vu qu’il était indiqué sur le wiki qu’à partir de Dolibarr 3.7.0, il était préférable de remplacer run_triggers() de la classe Interfaces par call_trigger() de la même classe. Pour l’instant les deux semblent cohabiter dans Dolibarr 3.7 alpha, mais j’imagine que dans le futur, run_triggers() sera amené à être supprimé pour ne garder que call_trigger().

Cependant le problème que j’ai rencontré est que run_triggers() permet de passer bien plus d’arguments, et notamment $object, ce qui permet aux triggers de travailler avec plus d’informations, ce que ne permet pas call_trigger() (les deux seuls arguments: nom du trigger et $user pour gérer les droits).

Pourquoi un tel changement? Est-ce qu’il y a une raison à la suppression de tous ces arguments supplémentaires? Ce nombre réduit d’arguments risque d’empêcher bon nombre de modules se basant sur les triggers de fonctionner avec Dolibarr 3.7 sans changements conséquents (comme c’est le cas de CustomFields qui a besoin que $object soit passé en argument d’un trigger). Ou alors est-ce qu’il faut maintenant accéder à $object en la déclarant comme une variable globale?

Bref, je vous remercie pour tout éclairage à ce sujet.

Bonsoir
A moins que je ne me trompe et d’après ce que j’en comprend, l’appel du call_trigger à la place du run_trigger permet juste de simplifier l’appel et ne pas avoir à transmettre des valeurs qui sont récupérables…
bref à part simplifier l’appel, je n’ai pas l’impression que cela change quoi que ce soit

Si ce n’est qu’une fonction simplificatrice, dans ce cas là pourquoi pas, mais ce n’est pas ce que je comprends de la doc:

Il semble d’après cette phrase qu’il soit nécessaire d’utiliser call_trigger() à la place de run_triggers() pour être compatible avec les futures versions de Dolibarr. D’où ma question: est-ce que run_triggers() est appelé à disparaitre? Et si oui, comment vont être passés les $object ?

Pas de réponse à ce sujet? J’ai regardé le code de Dolibarr v3.7, run_triggers() est toujours dispo dans cette version. Peut-on continuer à utiliser run_triggers() alors ou est-ce que cette commande sera remplacée à terme par call_trigger() ?

Bonjour
Si j’ai bien compris au lieu de faire run_triggers($trigger_name,$object,$user,$langs,$conf) on fait $object->call_triggers($trigger_name, $user)

Fred