Bonjour,
j'ai une classe qui me permet de gérer les libellés de mon site. Cette Classe appLang est construite dynamiquement à partir d'un fichier json. Le problème que j'ai c'est qu'après une mise à jour du fichier que j'ai faite aujourd'hui pour ajouter des libellés, tous les libellés ne s'affichent plus. Je vous met le code pour que vous compreniez mieux (je suis pas très fort pour expliquer )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public static function replace_lbl($matches) {
        $val = trim($matches[0]);
        $valLen = strlen($val) - 2;
        $val = substr($val, 1, $valLen);
 
        $appLang = TranslatorUtils::$siteAppLang;
 
        if (empty($appLang)) {
            $langCode = TranslatorUtils::$currentLangCode;
            $scope = "site";
            $langFile = Config::getBaseUrl() . '/' . $scope . '/client/ressources/lang/lang-' . $langCode . '.json';
            if (TranslatorUtils::url_exists($langFile)) {
                $appLang = json_decode(file_get_contents($langFile));
            }
            TranslatorUtils::$siteAppLang = $appLang;
        }
        //code ajouté pour débogage
        echo "<p>";
        echo "le tableau est :";
        print_r($appLang);
        echo "clé = ".$val;
        echo "valeur = ".$appLang->$val;
        echo "</p>";
        //fin code ajouté pour débogage
        if (!empty($appLang) && isset($appLang->$val)) {
            return $appLang->$val;
        } else {
            return "";
        }
    }
comme vous le voyez la variable appLng contient une classe dont les propriétés sont les différents libellés du site et, $val représente le libellé que je recherche (construit dynamiquement à partir de $matches qui lui vient d'ailleur). Alors après débogage je constate que, bien que les libellés soient présents dans la classe, isset renvois false. Et lorsque j'essais d'accéder directement au libellé (dans le code du débogage) j'ai l'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Undefined property: stdClass::$lblView
Dans laquelle lblView est le libellé recherché. Vous pouvez le constater sur la capture d'écran suivante:
Nom : Capture.PNG
Affichages : 162
Taille : 215,8 Ko
Je sollicite votre aide pour comprendre se qui se passe ( ) et comment corriger cette erreur car pour le moment je ne comprend pas. Bien entendu, s'il y a des imcompréhension et besoin de plus de données sur le problème je suis pret àles fournir. Merci de votre aide à tous.