Bonjour
Je suis débutant php, mais avec d’autres langages, il y a bien trop d’années, j’avais l’habitude de me créer des fonctions utilisateurs que je pouvais réutiliser partout dans mon code.
J’ai donc essayé de faire la mêe chose avec Jeedom en créant une première fonction dans /data/php/user.function.class.php.
J’ai un souci de passage de paramètres.
Il semble que la seule façon de passer le paramètre soit d’utiliser une variable, ou la valeur à transmettre directement. Un tag ou une valeur de commande ne fonctionne pas. Ainsi :
- MaFonction(variable(MaVariable)) fonctionne
- MaFonction(12345678) fonctionne
- MaFonction(tag(MonTag)) ne fonctionne pas
- MaFonction(#[Piece][Virtuel][Info]#) ne fonctionne pas
J’imagine que la raison pourrait en être que la valeur du paramètre n’est pas évaluée par le scénario avant d’être transmise, mais par la fonction en réception. Les variables étant globales sont acceptées, mais pas les tag ni les commandes… Si c’est bien le cas, je trouve ce fonctionnement bizarre, mais c’est peut être parce que je ne connais strictement rien à php que je découvre au fur et à mesure de mes besoins.
Est-ce que quelqu’un pourrait m’aider à pouvoir utiliser les tags pour passer des paramètres à une fonction ? Peut être quelque chose à rajouter au php, un passage de paramètre par valeur plutôt que par référence, ou que sais-je… Je dois dire que la multiplication dans Jeedom des variables publiques me dérange un peu, et l’arrivée des tags a été une bénédiction bien qu’on ne puisse pas définir leur portée (j’aimerais beaucoup pouvoir récupérer dans le scénario appelant sa valeur modifiée dans le scénario appelé…)
Merci beaucoup par avance pour vos éclairages.
Bonne journée