Meine Lösung für`0 – Using $this not in object context` in Joomla!

Nach der Migration wurde die Joomla! Seite schlichtweg nicht angezeigt. Stattdessen wurde nur der Fehler “0 - Using $this not in object context” angezeigt. In meinem Fall konnte ich das Problem beheben, indem ich – im Code des Templates – alle JFactory::getMenu() durch $ application->getMenu() ersetzte, wobei $application gesetzt wurde als $application = JFactory::getApplication().

Beachten Sie, dass dies möglicherweise nicht die einzig mögliche Lösung für diesen Fehler ist. Es hängt stark von Ihrem Code ab. Im Allgemeinen weist die Fehlermeldung auf das zugrunde liegende Problem hin: Irgendwo in Joomla!s (oder Ihrem) Code befindet sich ein $this in einer Klasse, die – wohl in Ihrem Code – verwendet wird, ohne dass die Klasse ordnungsgemäss instanziiert wurde. In dem oben erwähnten Fall zum Beispiel wurde die Klasse statisch initialisiert. Dies, weil das anscheinend im älteren Joomla! Versionen eine gängige und mögliche Art war.

Um die Ursache Ihres Problems zu finden, empfehle ich, Joomla! Debugging sowie PHP-Protokollierung zu aktivieren, um den vollständigen Stack-Trace abzurufen und damit den Ursprung der falsch instanziierten Klasse zu ermitteln.

Tim Bernhard

Mein Name ist Tim Bernhard, geboren bin ich am 2. August 1996. Ich besuchte die Kantonsschule in Wiedikon und schloss diese im Frühling 2015 ab. Als Maturaarbeit habe ich meine Leidenschaft für Programmiertechnische Projekte mit Hoffnungen für die Zukunft verbunden und das Unternehmen Bernhard Webstudio gegründet.

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.