Bonjour à toute l’équipe,
Depuis la mise à jour vers PHP 8.2 (Debian 12), j’observe dans les logs Jeedom (cron_execution notamment) des warnings de type :
PHP Deprecated: preg_match_all(): Passing null to parameter #2 ($subject) of type string is deprecated
Ces messages semblent provenir du core (ex : jeeObject.class.php, eqLogic.class.php, scenario.class.php, cmd.class.php) et sont liés au fait que certaines fonctions reçoivent parfois des valeurs null.
Dans mon cas, cela apparaît surtout après redémarrage ou réinitialisation de certains plugins/scénarios, où certaines commandes peuvent temporairement ne pas avoir de valeur.
Je comprends que PHP 8.2 est plus strict sur la gestion des types, notamment null, ce qui rend visibles des comportements qui n’étaient pas remontés auparavant.
Est-ce qu’une adaptation officielle du core Jeedom est prévue (ou en cours) pour :
- garantir la compatibilité complète PHP 8.2 / 8.3
- sécuriser les appels internes (notamment
preg_match_all,execCmd, etc.) - éviter les warnings “Deprecated” dans les logs système.
Je ne parle pas ici de bugs bloquants, mais plutôt de compatibilité et de propreté des logs en environnement PHP récent.
De mon coté j’ai pu utiliser un code scénario pour repérer les commandes obsolètes et ou sans valeurs et corrigés certaines, mais par exemple avec le plugin thermostat des commandes comme performances, coefficients, isolations, comme aucun valeur dans mon cas des message log warning apparaissent.
Le plugin Weather aussi à des commandes non utilisées sans valeurs comme Direction du vent +1, +2 etc et qui renvoient des warnings.
Merci pour votre travail sur Jeedom
en espérant d’être dans la bonne section.
