phplib Namespace wird unter 2.13.1 nicht mehr eingebunden

Luisehahne

Das Problem des Einbinden von phplib in Fremdmodulen, wird mit dem nächsten Patch R115, welches sich gerade im Test befindet, behoben sein.

Dietmar
Note: Once the code has been generated, it is easy to debug. It's not a bug, it's a feature!

Martin Hecht

danke für die PMs und für die vorübergehende Lösung. Die phplib in jedem Modul separat mit auszuliefern wäre sicher keine gute Idee. Mittelfristig steht also ein Umstieg an, weg von phplib. Das ist nur bei über Jahre gewachsenen Modulen nicht mal schnell umgestrickt. Aber ja, ihr habt recht, irgendwann muss man es mal angehen, und wenn die Template Klasse unter php 8.1 nicht mehr läuft, dann ist das ein gewichtiges Argument....

Luisehahne

Hallo Martin,

Pplib wird eine Zeitlang als deprecated weiter mitgeliefert und für Addons nutzbar sein. Das Problem kommt allerdings mit php8.1.x da schmiert phplib gnadenlos ab, und ob eine so alte Klasse mit tausend Zeilen überarbeitet werden sollte, meiner Meinung nach nicht.

Wir binden zur Zeit ja die phplib über den WB eigenen Autoloader ein. Was spricht dagegen, wenn du in deinen Modulen die phplib mitlieferst und dann includest? Soweit meine Kenntnisse reichen, wird eh die überholte template.inc bevorzugt. Da gab es nämlich File not found Probleme, weil diese für WB entfernt wurde, da nicht mehr nötig.

Dietmar
Note: Once the code has been generated, it is easy to debug. It's not a bug, it's a feature!

Martin Hecht

Hallo,

der Namespace, der die Template Klasse bereitstellt, wird im neuen Release nicht mehr eingebunden. Das hat zur Folge, dass eine ganze Reihe Module nicht mehr funktionieren. Man könnte zwar ganz einfach überall dort, wo die Klasse verwendet wird, mit einem use Statement den Namespace einbinden. Damit wären die Module unter der neuen Version zwar lauffähig, aber dann nicht mehr abwärts kompatibel. Das use Statement in einen if-Block zu packen funktioniert leider auch nicht - sonst könnte man zum Beispiel mit class_exists() eine Unterscheidung treffen. Funktioniert aber leider ausgerechnet bei 'use' nicht.

Daher meine Bitte: Bindet den phplib-Namespace weiterhin Core-seitig ein, damit die Module, die darauf aufbauen, weiterhin funktionieren.

Viele Grüße,
Martin