Recherche tuto pour mettre à jour un plugin pour PHP 7.3

Bonjour je ne suis pas un expert en développement mais j’ai fait quelque modification sur un plugin et je souhaiterais le mettre a jour pour la V4 sous buster mais je ne sais pas comment faire.

Si vous aviez un tuto ou autre pour montrer les variante a apporter.

Merci d’avance

Pour la compatibilité avec buster faut éditer la page
/desktop/php/idplugin.php
Et modifier tous les object:: par jeeObject::

Le plus souvent y en a qu‘un mais a verifer.
Si d‘autre problème cerifier la class, ajax et peut être aussi le panel

C’est a dire que a la place de ça :

foreach (object::all() as $object) {
    echo '<option value="' . $object->getId() . '">' . $object->getName() . '</option>';

Il faut mettre ça ?

foreach (jeeObject::all() as $object) {
    echo '<option value="' . $object->getId() . '">' . $object->getName() . '</option>';

Oui c’est très bien

Y’a que ça a faire ?

Oui sauf qu’il est possible qu’il y a d’autres class objet d’appeler
Tu verra à fur et à mesure

1 « J'aime »

Selon le code il peut y avoir plus non? Il me semble avoir lu que php7.0 était beaucoup plus permissif sur des syntaxes et déclarations que le 7.3.

Oui c’est possible.
Après c’est le plus courant vie sur jeedom et le seul identifié sur le core.

peut-on faire cette modification directement sous jeedom V3 ou ca ne fonctionnera pas ?

Si ta V3 est à jour çà fonctionnera aussi sous V3.
A savoir aussi que cette modif permet en général que le plugin ne plante pas sous V4 + Buster mais il peut y avoir d’autres problèmes avec la V4 principalement dans les widgets, la mise en page, les icônes, les styles , … ceci dit pour la plupart des plugins çà reste fonctionnel.

oui j’ai d’autre problème effectivement dans le même plugin j’ai plusieur choses qui ne fonctionne pas sous V4/buster
j’ai ce code la en v3:

$ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $this->getConfiguration('ip') . '/api/v1/production/inverters');
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
        curl_setopt($ch, CURLOPT_USERPWD, $this->getConfiguration('user') . ":" . $this->getConfiguration('pass'));
        $response = curl_exec($ch);
        curl_close($ch);

        $json_data = json_decode($response, true);
        $nbrpan = count($json_data);
        $this->checkAndUpdateCmd('nbpanneau', $nbrpan);

Ce bout devrait me renvoyer le chiffre 11 mais il me renvoit 4
voici un screen de la page qu’il va chercher

Merci d’avance

Je ferai afficher dans les log $response qui n’est peut-être pas ce que tu attends (contenant un message d’erreur par exemple)

C’est bon, c’est un problème au niveau de l’appel avec l’adresse IP j’ai modifier comme cela et ca fonctionne :

curl_setopt($ch, CURLOPT_URL, 'http://' . $this->getConfiguration('ip') . '/api/v1/production/inverters');