- App
- WoltLab Suite Core
Hallo,
es gibt Probleme, wenn man mehrere Language-Objekte in einer Scriptlaufzeit benutzen möchte (siehe: https://technex.org/index.php?page=Thread&threadID=1136). Das kann z.B. der Fall sein, wenn eine statische Methode etwas erstellt und anschließend ein neues Objekt initialisiert und daraus eine objektgebundene Methode aufgerufen wird. Das Language-Objekt von Methode zu Methode zu übergeben, wäre eine notdürftige Möglichkeit.
Da das neue Language-Objekt die benötigten Sprach-Variablen nicht beinhaltet, wird versucht, die entsprechende Sprach-Cache-Datei einzubinden, was auch mit einem true bestätigt wird. Da allerdings bereits in der statischen Methode ein Language-Objekt benutzt wurde, welches die gleiche Sprach-Cache-Datei eingebunden hat, verhindert PHP die erneute Einbindung und die Sprach-Variablen werden nicht "gefunden" und "roh" zurückgegeben.
Eine Änderung von include_once auf include ist unbedenklich, weil bereits vorher die Abfrage erfolgt, ob die entsprechende(n) Sprach-Variablen vorhanden sind. Weiterhin würde eine erneute Einbindung nur zu einem Überschreiben der bereits gleichen Sprach-Variablen führen, was allerdings keine Auswirkung hat (dieser Vorgang sollte auch nur dann stattfinden, wenn eine nicht vorhandene Sprach-Variable versucht wird, zu laden). Möglich wäre natürlich auch zu prüfen, ob die Datei bereits im aktiven Language-Objekt eingebunden wurde, um tatsächliches "doppelladen" zu verhindern.