Bonjour à tous et bonjour @Foulek57,
Suite au passage de mon environnement sous Debian 12 (Bookworm) et PHP 8.2, j’ai identifié un blocage sur le plugin eWeJee qui génère des erreurs fatales en continu dans le journal http.error :
[php:error] PHP Fatal error: Uncaught Error: Non-static method ewejee::attribute_update() cannot be called statically in /var/www/html/plugins/ewejee/3rparty/update.php:31
Explication Technique
Sous PHP 8.2, les règles de typage et d’appel statique sont devenues strictes. Les méthodes de callback de ewejee.class.php appelées statiquement dans update.php (ewejee::attribute_update(), ewejee::offline(), ewejee::online(), etc.) doivent impérativement être déclarées en public static function, sans quoi PHP stoppe immédiatement l’exécution.
J’ai souhaité proposer une Pull Request directement, mais le dépôt GitHub foulek57/jeedom-ewejee ne contient que les fichiers de documentation (docs/) et non le code source du plugin.
Patch / Solution
J’ai ouvert une Issue sur le GitHub avec le détail précis du correctif testé et validé en production :
Lien vers l’issue : [Fix PHP 8.2 / Debian 12] Static method calls in update.php & eqLogic null-safety guard · Issue #28 · foulek57/jeedom-ewejee · GitHub
En résumé, le correctif consiste à :
- Passer les fonctions appelées statiquement en
public static functiondansplugins/ewejee/core/class/ewejee.class.php. - Ajouter une vérification
if (!is_object($eqLogic)) return;dansattribute_update,offlineetonlinepour ignorer proprement les trames d’équipements non déclarés.
Le patch fonctionne parfaitement chez moi et supprime 100% des erreurs. Si cela peut servir à intégrer une future mise à jour sur le Market pour tous les utilisateurs sous PHP 8.2 !
Merci encore à Foulek pour ce plugin.