Seite 1 von 1

Vermeiden, dass Sprachvariable aus Versehen überschrieben wird

Verfasst: 18.02.2023 10:11
von mbld
Ich habe in meiner Extension in common.php die Sprachvariable LAST_POST definiert, und dabei nicht beachtet, dass diese auch im Core schon definiert ist und durch meine Extension mit einem Text überschrieben wird, der im Core nicht wirklich passend ist.
Wie kann ich denn vermeiden, dass ich aus versehen die gleichen Variablen benutze wie der Core?
Geht das nur, indem ich vor jede Variable einen Prefix setze, der hoffentlich sonst nirgends genutzt wird?
Oder gibt es andere "best practices"?

Re: Vermeiden, dass Sprachvariable aus Versehen überschrieben wird

Verfasst: 18.02.2023 11:14
von Kirk
Hallo
Um dies zu vermeiden müsstest du eine eigene Sprachvariable definieren, wie du bereits erwähnt hast z. B. durch ein vorangestellten Präfix.

Re: Vermeiden, dass Sprachvariable aus Versehen überschrieben wird

Verfasst: 18.02.2023 12:37
von LukeWCS
Hallo

Es gibt im phpBB Umfeld mehrere globale Namensräume wo es zu Kollisionen kommen kann. Zu Variablen mit globalem Namensraum gehören zum Beispiel Sprachvariablen. Dazu gehören übrigens auch Config Variablen (DB) und Template Variablen.
mbld hat geschrieben: 18.02.2023 10:11 Oder gibt es andere "best practices"?
Jupp, wie Kollege Kirk schon schrieb: Präfix nutzen.
Geht das nur, indem ich vor jede Variable einen Prefix setze, der hoffentlich sonst nirgends genutzt wird?
Best practice wäre hier einen Kurznamen der Ext als Präfix zu nutzen. Bei meinem "LF who was here" benutze ich zum Beispiel das Präfix LFWWH_. Wenn du weitere Beispiele brauchst, guck dir meine Erweiterungen an die ich im Forum "Extensions in Entwicklung" habe. Da findest du für so gut wie jeden Variablen-Bereich Beispiele. Ebenfalls "Best practice" wäre dann das konsequent zu nutzen. Also nicht nur für ein paar Variablen, sondern für alle die man selber definiert.

Wir haben bei phpBB keine "isolierten" Bereiche, sondern einen riesigen gemeinsamen Pool an zig verschiedenen Variablen-Bereichen. Dadurch haben Ext Coder weitreichende Möglichkeiten. Und das müssen sie auch haben, da sonst vieles gar nicht realisierbar wäre. Das heisst aber auch, dass man seine Ext immer so gestalten muss, dass es mit anderen Exts und phpBB nicht zu Kollisionen kommen kann.