Debuggen mit Shopware in einem Live-Shop

Es ist ein Fehler in Ihrem Shopware Shop aufgetreten. Um den Fehler finden zu können, müssten Sie an einer oder sogar einigen Stellen einen Variableninhalt prüfen. Das geht mit bspw. print_r relativ einfach und schnell. Das Problem ist nur, dass man die Ausgaben auf den Shopseiten sieht…

Um die Ausgaben im Hintergrund (Konsole) angezeigt zu bekommen, gibt es zwei Möglichkeiten:

Debug-Plugin

Hier geht es zum Shopware-Wikiartikel.

Aktivieren Sie das Debug-Plugin im Pluginmanager. Am besten tragen Sie in den Einstellungen noch Ihre IP-Adresse ein. Dann bekommen nur Sie die Konsolenausgaben angezeigt. Für Firefox benötigen Sie das AddOn Firebug. Nach der Installation und Öffnen von Firebug bekommen Sie die Shopwareausgaben (Templatevariablen, Exceptions, etc.) in der Konsole angezeigt.

In Ihrem Plugin oder an beliebig anderer Stelle können Sie
Shopware()->Debuglogger()->info('test');

verwenden, um bspw. einen Variableninhalt angezeigt zu bekommen.

Debug-Plugin mit Testausgabe

Debug-Plugin mit Testausgabe

Nur was tun, wenn Sie bspw. den Inhalt eines Arrays angezeigt bekommen möchten?

Leider funktioniert die Beschreibung aus diesem Shopware-Wikiartikel in den aktuellen Shopware 5 Versionen nicht mehr.

Abhilfe verschafft hier die Umwandlung des Arrays zu einem String:
$var = print_r($array, true);
Shopware()->Debuglogger()->info($var);

Generell bekommen Sie auch alle Templatevariablen in der Konsole angezeigt, die im PHP-Teil definiert und dem Template zugewiesen wurden.

Was tun, wenn Sie aus Ihrem Template heraus Variablen debuggen möchten?

Dazu können Sie in Ihrem Template den Befehl {debug} an der entsprechenden Stelle einfügen. Mit Aufruf des Templates wird eine neue Seite geöffnet, die alle Templatevariablen enthält. Allerdings muss Ihre neu Variable vorher wie folgt definiert worden sein:
{assign var="testOutput" value="hallo Welt"}

Da die Debuginfo nicht jeder sehen können soll, fügen Sie noch eine Abfrage mit Ihrer IP-Adresse hinzu:


{if $smarty.server.REMOTE_ADDR == '33.33.33.1'}

     {assign var="testOutput" value="hallo Welt"}

     {debug}

{/if}

{debug} muss dabei immer nach dem Quellcode-Teil stehen, den Sie debuggen möchten.

Debuggin in Smarty mit Testausgabe

Debuggin in Smarty mit Testausgabe

Facebook Kommentare:

0 Kommentare

Dein Kommentar

Want to join the discussion?
Feel free to contribute!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*