Message aléatoire (deprecated) avec LazyDbBackup J4

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • Message aléatoire (deprecated) avec LazyDbBackup J4

    Bonjour,

    J'ai de manière aléatoire, débogage activé et rapport d'erreurs au maximum, plusieurs lignes "deprecated" avec LazyDbBackup pour J4, en PHP 8.2 (voir l'image).
    Il me semble avoir pu provoquer une erreur fatale en PHP 8.3, sur Wampserver, mais je n'ai pas pu la reproduire.
    De plus, lorsque cette série d'avertissement apparaît, qui semble correspondre aux infos de connexion à la base pour en extraire la liste des tables, il suffit de poursuivre pour que ça ne s'affiche plus, même en forçant une nouvelle création de sauvegarde.
    J'ai multiplié les tests sur divers sites en local et en ligne avant de pouvoir faire la copie d'écran, et les messages ne me permettent pas d'avoir la moindre idée de ce qui peut être déprécié, et donc de corriger le code.
    Etant un avertissement, cela n'impacte pas les sauvegardes elles-mêmes.
    Le code concerné est cette fonction dont je ne donne que le début :
    Code:
        function _Retrieve($fp, $compress)
        {
            $value = '';
            $this->host = $this->server;
            $this->driver='mysql';
            if($this->host=='localhost'){
                $this->host = '127.0.0.1';
            }
            $this->dsn = $this->driver.':host='.$this->host.';dbname='.$this->database;
    
            if ($this->Connect($this->dsn,$this->username,$this->password)==false)​
    et aussi pour la ligne 92
    Code:
        private function Connect($host,$username,$password)
        {
                try {
                    $this->handler = new PDO($host, $username, $password,array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''));
                    $value = true;
                } catch (PDOException $e) {
                    $this->handler = null;
                    $this->error[] = $e->getMessage();
                    return false;
                }
            return $value;
        }​
    J'ai tenté de reproduire l'erreur fatale en PHP 8.3 sur des sites 4.4.1, 5.0.1 et 5.1.0 alpha1 en local, mais pas moyen. Pour une raison qui m'échappe, certaines pages mettent un temps fou à s'afficher.
    Auriez-vous une idée de ce qui peut être en cause et de comment je pourrais corriger ?
    Merci de vos conseils !
    Cliquez sur l'image pour l'afficher en taille normale

Nom : Capture d’écran 2023-12-05 172301.png 
Affichages : 96 
Taille : 123,7 Ko 
ID : 2057787
    "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
    MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

  • #2
    Je pense que le driver "mysql" n'est plus utilisé. Il faudrait utiliser "mysqli" à la place.
    Tous les services pour les sites Joomla! : sécurité, nettoyage de sites piratés, hébergement, SEO, applications Fabrik, migration, compatibilité mobiles, accessibilité, ...
    Administrateur certifié Joomla! 3
    https://www.betterweb.fr

    Commentaire


    • #3
      Merci !

      En l'occurrence, je suis sur une gestion PDO de l'accès à la base, je ne suis donc pas sûr qu'utiliser mysqli soit plus adapté.

      J'ai aussi trouvé une discussion sur Stackoverflow où on lit dans une réponse :
      The warning is that there is no line in the class definition saying that $db->database or $db->server exist.
      For now, they will be dynamically created as untyped public properties, but in future, you will need to declare them explicitly:
      L'auteur de la réponse en question propose aussi d'utiliser #[AllowDynamicProperties] pour autoriser cette création au vol.

      Il faudra que j'essaie, mais du fait que l'affichage de ces messages est aléatoire, ça risque d'être coton d'être sûr qu'un tel changement fasse disparaître le message, puis l'erreur fatale lorsqu'on passera en version PHP supérieure.
      "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
      MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

      Commentaire

      Annonce

      Réduire
      Aucune annonce pour le moment.

      Partenaire de l'association

      Réduire

      Hébergeur Web PlanetHoster
      Travaille ...
      X