PHP Deprecated: __autoload() is deprecated

Bonsoir,

J’ai dans les logs cron_execution les lignes suivantes qui se répètent :

0080|PHP Deprecated:  __autoload() is deprecated, use spl_autoload_register() instead in /var/www/html/plugins/mail/3rdparty/PHPMailer/PHPMailerAutoload.php on line 45

J’ai l’impresion que cela vient du plugin mail suite à une mise à jour de php… Il me semble que j’ai fais une mise à jour vers le 19/01/2023

$ php -v
PHP 7.3.31-1~deb10u2 (cli) (built: Dec 15 2022 09:39:10) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.31, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.31-1~deb10u2, Copyright (c) 1999-2018, by Zend Technologies

Faut-il revenir à une version antérieur si oui laquelle ? Ou est-il possible de modifier le plugin ?

Merci


03/02/2023
Je ne comprend pas trop dans la Documentation Jeedom, il est mentionné que Jeedom est compatible jusq’uen version php 7.4

Je constate ce message depuis hier soir, j’ai seulement installé le plugin « grdf connect » et supprimer plugin-jazpar. Cet après midi, je vais désactivé « grdf connect » pour voir si c’est lui, en revanche, je ne fais pas le lien avec Mail.

Ce n’est pas très clair mais si je désactive « grdf connect » je n’ai plus ce message. Dès que je le réactive cela réapparait.

@limad44 aurais-tu une idée ? Je n’ai jamais regardé comment fonctionne les plugin dans jeedom, mais est-ce que ton plugin ferait appel à une fonction présente dans : /var/www/html/plugins/mail/3rdparty/PHPMailer/PHPMailerAutoload.php ? Sais-tu si je suis le seul à rencontré ça ?

Merci

PS : Je vais mettre en debug les 2 plugins pour voir s’il y aurait une piste pour ne plus avoir ce message. Bien qu’en lisant la description, j’aurais tendance à dire qu’il faut remplacer la fonction __autoload().

Salut
Les logs sont suffisamment claires pour indiquer l’origine de ces warnings…le plugin « mail ».
Il n’y pas de autoload dans grdfConnect.

Les messages dans le cron.execution ne sont pas des erreurs handicapantes ou de nature à stopper le fonctionnement du plugin ou de la box mais les corriger c’est mieux.

Je suis d’accord avec ton analyse, mais ce que je ne comprend pas c’est le lien entre grdfConnect et Mail ? C’est un peu de curiosité j’avoue.
De ton côté tu as le même comportement ?

merci

Je n’ai pas cette erreur car forcément je n’ai pas le plugin mail.
Aucune chance d’interaction entre les deux plugins.
Je jetterai un œil sur son code comme même.

1 « J'aime »

tu peux éventuellement remplacer ça
plugins/mail/3rdparty/PHPMailer/PHPMailerAutoload.php

if (version_compare(PHP_VERSION, '5.1.2', '>=')) {
    //SPL autoloading was introduced in PHP 5.1.2
    if (version_compare(PHP_VERSION, '5.3.0', '>=')) {
        spl_autoload_register('PHPMailerAutoload', true, true);
    } else {
        spl_autoload_register('PHPMailerAutoload');
    }
} else {
    /**
     * Fall back to traditional autoload for old PHP versions
     * @param string $classname The name of the class to load
     */
    function __autoload($classname)
    {
        PHPMailerAutoload($classname);
    }
}

par ça

 spl_autoload_register('PHPMailerAutoload', true, true);

A tes risques et périls !.. :skull: last one I do Aliens come :skull:

Bonjour,

J’ai la même version de PHP que vous (tous les correctifs installés sur un Raspberry Pi 4B avec Buster 64 bits) :
=> Et je n’ai pas ce message issue du plugin Mail.

Bonjour a tous.

Pas si sûr :wink:, j’ai pas le plugin grdf connect, donc je ne peut confirmer mes propos, mais il est possible que dans la class du plugin tu fasse passer le niveau de rapport d’erreurs PHP à E_ALL.
ce qui a pour conséquence d’afficher les PHP Deprecated qui normalement sont masqué par défaut.

Bien vue @Phpvarious.
Pour le plugin mail je pense que le vérification PHP_VERSION 5.3.0 n’a pas vraiment lieu d’être.

Effectivement ,c’est la lib qui n’est pas a jour.
mais ce n’est qu’un PHP Deprecated :wink:

Merci c’était bien ça :slight_smile:

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.