Über OXID Fehler, Shop Offline, offline.html, Weisse Seite, EXCEPTION_LOG.txt und mehr
Unserer Meinung nach ist das OXID Fehler- und Exception-Handling schon etwas Spezielles. Einerseits kann man darüber ganz ordentlich Support-Leistungen verkaufen. Andererseits möchte der Shop-Betreiber vielleicht einfach selbst herausfinden können, was genau dem Shop fehlt, bzw. warum er nur eine weisse, leere Seite angezeigt bekommt.
OXID reagiert auf Fehler im System, der Datenbank, Modulen und Themes oder Templates mit verschiedenen Meldungen, die aber nicht alle wirklich eindeutig oder aussagekräftig sind. Seit wir für OXID Module und Themes programmieren, sind wir auf zahlreiche Varianten gestoßen, wie es zu den Fehlern kommen kann. Als Beitrag zum besseren Verständnis von OXID stellen wir hier einige häufige Situationen vor:.
Meldung "Shop Offline", Weiterleitung auf /offline.html
-
Seltene Ursache: Die Datenbank ist nicht erreichbar
Es wir eine Exception ausgelöst, die aber abgefangen wird. Anschließend erfolgt ein Redirect auf die OXID Fehlerseite offline.html. Gemein: Der Browser wird auf die Seite /offline.html umgeleitet. Kann man den Fehler anschließend im Code lokalisieren und beheben und zwingt den Browser zum Neuladen (F5) passiert - genau: nichts Neues. Warum? Das Neuladen lädt einfach nur die Seite offline.html neu, so dass ein Erfolg bei der Fehlerbehebung vielleicht unbemerkt bleibt. Passiert nicht oft, ist aber umso ärgerlicher wenn doch. Wir merken uns: Nach einer Umleitung auf /offline.html immer die Adresse bzw. URL des Shops neu eingeben oder über die Zurück-Funktion des Browsers navigieren.
-
Häufige Ursache: Syntax Fehler in einer PHP Datei, zum Beispiel einem Modul
Der OXID Autoloader versucht eine Moduldatei zu laden, die über oxnew() angefordert wird. Die so nachgeladene Datei enthält einen PHP Syntax Fehler, der zu einem kritischen Fehler führt. Der Fehler wird von oxnew() aufgefangen und verschluckt. Eine Anzeige erfolgt standardmäßig nicht, ebensonwenig eine Protokollierung von OXID in der EXCEPTION_LOG.txt.
Diese Fehlertypen können gut über das Apache Error Log nachverfolgt werden.
Weisse, leere Seite
-
Häufige Ursache: Logischer Programmfehler
Eine Funktion, Methode oder statische Variable wird verwendet, existiert aber nicht. Dabei handelt es sich nicht um einen Syntaxfehler in PHP, denn der Code ist eigentlich korrekt formatiert. Beim Ausführen stellt PHP aber fest, dass ein Befehl so nicht funktionieren kann.
Diese Fehlertypen können gut über das Apache Error Log nachverfolgt werden.