Die modified eCommerce Shopsoftware mit FirePHP debuggen
Aus Wiki | modified eCommerce Shopsoftware
Zur Navigation springenZur Suche springenIn 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]
- Verwendung des Firefox 4.x mit der Erweiterung "FireBUG 1.8+" UND "FirePHP 0.6+"
- Installation der Serverlibrary von FirePHP (im Trunk-Version sind die 2 erforderlichen Dateien bereits enthalten!):
- Setzen der entsprechenden Debug-Befehle im Quelltext (siehe Beispiele unten)
- 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
#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
#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