Die modified eCommerce Shopsoftware mit FirePHP debuggen

Aus Wiki | modified eCommerce Shopsoftware
Zur Navigation springenZur Suche springen

In der kommenden Version der modified eCommerce Shopsoftware wurde eine Möglichkeit für Entwickler integriert, durch einfache Zusätze im Quelltext Variablen und SQL-Queries zu debuggen, ohne dass diese im Shop sichtbar werden.

Vorteil: diese Möglichkeit kann auch bei Produktivshops genutzt werden, da die Kunden die Meldungen in der Regel nicht sehen werden (es sei denn sie haben ebenfalls Firebug + FirePHP installiert).


Vorraussetzungen:[Bearbeiten]

  1. Verwendung des Firefox 4.x mit der Erweiterung "FireBUG 1.8+" UND "FirePHP 0.6+"
  2. Installation der Serverlibrary von FirePHP (im Trunk-Version sind die 2 erforderlichen Dateien bereits enthalten!):
    1. http://sourceforge.net/apps/trac/modified-shop/browser/trunk/includes/classes/class.debug.php
    2. http://sourceforge.net/apps/trac/modified-shop/browser/trunk/includes/classes/class.debug.firephp.php
  3. Setzen der entsprechenden Debug-Befehle im Quelltext (siehe Beispiele unten)
  4. Erscheint die Meldung "FirePHP ERROR: Headers already sent in [...]. Cannot send log data to FirePHP. You must have Output Buffering enabled via ob_start() or output_buffering ini directive.", so muss im Admin die Option "GZip Kompression einschalten" auf "true" gesetzt werden.

Verwendung:[Bearbeiten]

An relevanten Stellen im Quelltext sind nun Befehle mit folgender beispielhafter Syntax möglich:

$log->firephp_command('BEFEHL', $variable);


Folgende Befehle stehen zur Verfügung[Bearbeiten]

#1: Ausgabe von Variableninhalten und Arrays => 'vardump'[Bearbeiten]

$log->firephp_command('vardump', $_SERVER);

Ausgabe in der Konsole (z.B.)

vardump: => "Variableninhalt"

Oder (z.B.)

vardump: (associative array)
['AUTH_TYPE'] => Basic
['DOCUMENT_ROOT'] => /var/www/html
['GATEWAY_INTERFACE'] => CGI/1.1
['HTTP_ACCEPT'] => text/html,application/xhtml+xml,application/xml;
['HTTP_ACCEPT_CHARSET'] => ISO-8859-1,utf-8;q=0.7,*;q=0.7
['HTTP_ACCEPT_ENCODING'] => gzip,deflate
[...]

Screenshot

Fire php vardump.jpg

#2: Backtrace, welche Dateien betroffen sind => 'trace'[Bearbeiten]

$log->firephp_command('trace');

Ausgabe in der Konsole (z.B.)

Backtrace
File	Line	Instruction
.../includes/classes/class.debug.firephp.php 662 FirePHP->fb('Backtrace', 'TRACE')
.../includes/classes/class.debug.php 112 FirePHP->trace('Backtrace')
.../index.php 64 debug->firephp_command('trace')

Screenshot

Fire php trace.jpg

#3: Ausgabe von SQL-Queries mit Ausführungszeit => 'sqltime'[Bearbeiten]

$log->firephp_command('sqltime', $sql_query);

Ausgabe in der Konsole (z.B.)

MYSQL_DUMP (5.5.8) => Resource id #129
SQL-Query: SELECT * FROM orders
SQL-Query Time (+PHP Overhead): 0.00054693
SQL-Query Time (-PHP Overhead): 0.00031625
Result #1: array('orders_id'=>'1', 'customers_id'=>'1', 'customers_cid'=> ... )
Result #2: array('orders_id'=>'10', 'customers_id'=>'1', 'customers_cid'=> ... )
[...]

(Ist eine SQL-Query leer oder falsch, erscheint eine Fehlermeldung/Exception)

Screenshot

Fire php sqltime.jpg