Sidebar
ein-/ausblenden

FirePHP verwenden, eine Einführung

Plugin für WordPress SEO

Anzeige

FirePHP Logo
Das Firefox Add on Firebug kann mittels weiterer Add ons erweitert werden, ein seht nützlich für PHP-Entwickler und Nutzer kann Firebug sein. Allerdings muss man dazu einiges an Anpassungen vornehmen und da es in diesem Zusammenhang wohl Bedarf gibt, hier eine kurze Einführung, wie man Firebug verwendet und wo die Werte dann zu finden sind.

Mit PHP gibt es eine ganze Reihe von Möglichkeiten um die Ausgabe von Variablen während des Entwickeln zu gestalten, print_r() und var_dump() sind sicher die meist genutzten. Diese Möglichkeiten geben die Inhalte als HTML aus, direkt and er Stelle, wo sie eingebunden sind. Das hat den Nachteil, dass das Layout eventuell zerstört ist, dass die Ausgabe unübersichtlich wird und wenn man in einem Livebetrieb diese Möglichkeiten nutzt, dann is tdas nur schwer vor den anderen Usern zu verbergen. Mit dem Add on FirePHP bekommt der Entwickler ein Werkzeug, ohne Entwicklungsumgebung, welches diese Arbeit erleichtern kann und direkt im Browser verfügbar ist.
Nun aber in wenigen Schritten, wie man zur Integration des Firebug und der Ausgabe der Werte kommt.

Installation

Das Add on benötigt ein weiters Add on und ist nur im Browser Firefox verfügbar. Wer also nicht mit diesem Browser unterwegs ist, darum kommt man beim Entwickeln aktuell nicht dran vorbei, auch wenn sich andere Hersteller redlich bemühen. Installiert also den Browser Firefox und das Add on Firebug. Wer Firebug noch nicht kennt - damit kann man im Standard HTML, CSS und JavaScritp debuggen, analysieren und live editieren. Ist das abgeschlossen, so kann die Erweiterung FirePHP installiert werden. Die einzelnen Links führen euch zu den Installationen, welche einfach und schnell erledigt sind.

Ein Hinweis, FirePHP und dessen Library funktioniert nur mit PHP 5.

Nach dem alles installiert ist, findet man die Tools in der Systemleiste des Browser (zu erkennen am kleinen Käfer), per Klick oder F12 kann der Firebug aufgerufen werden. Nun kann schon mit den Standard-Tools gearbeitet werden; für die Verwendung von FirePHP muss man noch das PEAR-Paket bereit stellen. Die wenigsten Nutzer werden wohl einen eigenen Server haben, so dass die Umgebung für das Entwickeln von PHP-Anwendungen eher ein lokaler Server sein wird. Daher erkläre ich mal am Beispiel XAMPP, wie man FirePHP zum reden bringt.

  1. Als erstes muss die Code-Libarary herunter geladen werden, zu finden auf der Webseite von FirePHP.
  2. In diesem Download-Paket gibt es einen Ordner FirePHPCore, den man nach …\xampp\php\PEAR kopiert.
  3. Hat man dies erledigt, dann muss man lediglich den Server starten bzw. neu starten, falls er schon lief.

Vorbereitung der Ausgabe

Nach dem nun die Bibliothek beriet steht, können wir sie in das Projekt implementieren. Dazu inkludet man die Datei und schon steht die wichtigste Funktion fb() bereit.


require('FirePHPCore/fb.php');

Nun empfiehlt sich noch das Puffern der Ausgabe und dann kann es schon los gehen. Aktuell steht also im Projekt die folgenden Zeilen.


<?php
require('FirePHPCore/fb.php');
ob_start();
?>

Die erste Ausgabe „Hello World“

Als erstes soll das gewohnte Neuland betreten werden, in dem wir „Hello World“ im FireBug ausgeben. Dazu erweitert man die obigen Zeilen um ein einfache Ausgabe mit der Funktion fb() von FirePHP.


<?php
require('FirePHPCore/fb.php');
ob_start();
fb('Hello World');
?>

Mit F12 den Firebug aktivieren und die Seite neu laden, dann sollte es ähnlich dem folgendem Screenshot bei euch aussehen.
FirePHP Hello World

Log Meldungen gestalten

Firebug kann aber mehr als pur die Meldungen ausgeben; dabei gibt es verschiedene Design-Möglichkeiten, die das Lesen der Ausgabe von Meldungen erleichtern und so verschiedene Typen für unterschiedliche Ausgaben zulassen.
Dazu den Code wieder ein wenig erweitern:


<?php
require('FirePHPCore/fb.php');
ob_start();
fb('Hello World');

fb('Log Mitteilung', FirePHP::LOG);
fb('Info Mitteilung', FirePHP::INFO);
fb('Warn Mitteilung', FirePHP::WARN);
fb('Error Mitteilung', FirePHP::ERROR);
?>

FirePHP Log Message

Array ausgaben

Nun aber weg von den kleinen Spielereien, zu einem sehr mächtigen Werkzeug, die Ausgabe von Arrays. Die Ausgabe soll an einer bekannten Variable gezeigt werden - $_SERVER.

$_SERVER ist ein Array, das Informationen wie Header, Pfade und die verschiedenen Wege, das Skript anzusprechen. Die Einträge in diesem Array werden vom Webserver erstellt.

Diese Variable wird nun mittels der Funktion fb() in FirePHP geloggt und kann daher inhaltlich gelesen werden. Bisher wurde die Funktion lediglich mit Text gefüttert und dieser wurde dann ausgeben, dass ändert sich nur soweit, dass man anstatt Text nun die Variable übergibt.
Der Syntax wird wieder erweitet:


<?php
require('FirePHPCore/fb.php');
ob_start();

fb($_SERVER, FirePHP::LOG);
?>

Nun wird im Firebug ein Array angezeigt, mit dem Wert 36. Ein MouseOver zeigt die Inhalte des Array in einem Extra Fenster, ein Klick stellt das Fenster permanent dar.
FirePHP Array Ausgabe

Erstellt man später mehrere Ausgaben, so ist es sinnvoll, wenn man eine Zuordnung hat. Daher lässt die Funktion fb() auch dafür einen Parameter zu.


fb($_SERVER, 'Server Variables', FirePHP::LOG);

FirePHP Array Ausgabe mit Zuordnung

Trace loggen

Als nächstes soll ein Trace erfolgen, so dass man alle Verbindungen sehen kann. Die WordPress-Nutzer sehen spätestens jetzt, dass ich für das Beispiel in einem WordPress-Theme debugge, was eigentlich schön zeigt, wie gut sich FirePHP integrieren lässt.

Dafür die folgende Erweiterung in den Code übernehmen.


<?php
require('FirePHPCore/fb.php');
ob_start();

fb('Backtrace to here', FirePHP::TRACE);
?>

FirePHP Tracing

Sehr schön kann man nun die Verbindungen sehen, die tabellarische Sicht gibt sehr schnell Auskunft und macht die Analyse zum Kinderspiel.

Fazit

Dieser kleine Einstieg zeigt die für mich wichtigsten Funktionen. FirePHP kann mehr und informiert darüber ausführlich auf der zugehörigen Website.
Ebenso lohnend ist das Tutorial von Dirk Henn „PHP mit Firebug debuggen“.

15 Kommentare und 1 Trackback zu „FirePHP verwenden, eine Einführung“

  1. 1
    Kommentar von Bastian

    Vielen Dank für den super Beitrag! Scheint eine Lösung zu sein, die einfach und verständlich funktioniert. Andere debugger waren mir ind er Vergangenheit immer zu oversized und so habe ich mir mit jeder Menge Ausgaben im Code beholfen, die dann - wie du schon sagtest - erst mal das Layout über den Haufen geworfen haben.

  2. 2
    Kommentar von Markus

    So schön FireBug auch ist, bei mir macht der den Browser durcheinander. Der Browser-String zeigt nur noch "PHP", die Webdeveloper Toolbar mag nicht mehr und einige weitere Nickligkeiten...

    Da arbeite ich lieber auf einen Testsystem mit allen Fehler- und Warnmeldungen.

  3. 3
    Kommentar von Frank Bültge

    @Markus: Kann ich so nicht bestätigen, läuft auf mehreren Plattformen.

  4. 4
    Kommentar von Dirk

    Hallo Frank,

    leider ist das Tutorial auf meiner Seite nicht mehr aktuell. Die aktuelle Version von FirePHP benötigt kein PEAR-Paket mehr und ist auch sonst von der Funktion her komplett umgestrickt worden.

    Ich hab mal einen Hinweis über meinen Artikel gesetzt.

    Gruß

    Dirk

  5. 5
    Kommentar von Funbug

    Vielleicht wäre an dieser Stelle auch mal ein Hinweis auf die exzelente und sehr hilfreiche Debuglib angebracht, die leider immer noch viel zu unbekannt ist.

  6. 6
    Kommentar von Frank Bültge

    Irgendwie will das Teil nicht so recht mit meinem Firefox 3.0 Browser...Eigentlich hat es sich so schön angehört :(

  7. 7
    Kommentar von Julian

    Super! Danke dir sehr!

  8. 8
    Kommentar von Gebintit

    Sehr nett und nützlich der hübsche Käfer! Aber mit dem kurz mal ausprobieren war es bei mir nicht! Meine Testkonfiguration: XAMPP unter Windows XP mit PHP5.25 und Apache2, Firefox 3.0.1, Firebug 1.2.0b13, FirePHP 0.1.1 . Problem: ob_start(); funktionierte nicht zuverlässig. Erst die Variante "php_flag output_buffering on" in die VirtualHost-Konfiguration des Apachen zu schreiben (siehe ) brachte den Erfolg. Vielleicht hilft es anderen früher ins Bett zu kommen (siehe Zeitstempel!).

  9. 9
    Kommentar von Dortich

    Hi, das ist ein super Beitrag. FirePHP ist wirklich hilfreich. :-)

  10. 10
    Kommentar von SamX

    Ich benutze FireBug schon eine ganze Weile und möchte schon jetzt nicht mehr darauf verzichten. Es hast (fast) meine kommerzielle Version eines CSS Editors abgelöst. Die Live Ansicht auf der aktuell bearbeiteten Seite ist mehr als optimal.
    Das Add-On hat sicherlich noch ein paar Usability schwächen, ich kann es aber ebenfalls uneingeschränkt empfehlen.
    Das PHP Plugin kannte ich bis jetzt noch nicht, vielleicht werde ich das auch einmal antesten.

  11. 11
    Pingback von Debug infos als popup - php.de
  12. 12
    Kommentar von Bernd

    Hallo Alle zusammen,
    erst einmal vielen Dank für die Beschreibung.
    Zusätzlich musste ich das Häckchen für die Option Netzwerk aktivieren.
    Danach lief es.

  13. 13
    Kommentar von Stephan

    Super Beitrag, FirePHP kannte ich gar nicht.

    Kleiner Hinweis: Das letzte Bild ist falsch verlinkt. Es sollte auf firephp_trace.png verlinken, ist aber mit firephp_traced.png verknüpft...

  14. 14
    Kommentar von Frank Bültge

    @Srephan: Danke, gefixt.

  15. 15
    Kommentar von insiderhelps

    hi

    ihr solltet vielleicht wissen, dass firephp, genau wie firebug, regelmässig und automatisch zu einem server kontakt aufnimmt, welchem es selektierte log-daten eurer serverumgebung weiterreicht. die schnipsel sind bei auto-update hidden/integriert. was damit angestellt wird, ist noch nicht ganz klar. der schadhafte code sucht dabei gezielt nach password/username strings. das verrückte dabei ist, dass der schadhafte code immer nur kurz temporär vom server geladen wird und die cookies/cache ausspäht. ich arbeite bei Avira und wir waren erstaunt über diese entdeckung. der entwickler hat sich bisher noch nicht auf unsere Anfrage gemeldet.

  16. 16
    Kommentar von Rico

    Hallo "insiderhelps" von Avira,

    ist in der Sache noch was gegangen?
    Und wie heisst der Server, sodass man den einfach in der Firewall sperren kann.

Kommentar schreiben

Kommentarregeln: Bleib cool, kritisch ist in Ordnung, aber wenn du unhöflich bist, dann lösche ich deinen Kommentar. Bitte benutze deinen persönlichen Namen oder Initialen und nicht den Namen eines Unternehmens, dies würde als Spam gewertet und wird gelöscht. Der Zusammenhang zwischen Namen und URL sollte nicht offensichtlich auf Spam hindeuten! ♥ Ansonsten, vielen Dank für den Kommentar und viel Spaß mit meinem Blog.

E-Mail-Benachrichtigung bei weiteren Kommentaren.
Auch möglich: Abo ohne Kommentar.

Kommentar-Hilfe

händischer Spam:
Beachte die Kommentarregeln, jede Form von versuchtem Spam wird gelöscht. Warum und wieso steht in einem meiner Beiträge.

Bezug auf Textstellen:
Du kannst direkt bezug auf Textstellen im Beitrag nehmen. Dazu muss lediglich der Bereich im Artikel markiert werden; daraufhin erscheint ein Button, der den markierten Text in das Kommentarfeld übernimmt und als Zitat auszeichnet. Die Funktion ist nur bei aktivem JavaScript nutzbar.

xHTML:
Du kannst folgende Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <blockquote cite=""> <code> <pre> <em> <strong> <strike> <ul> <ul> <li>

Achte darauf, wenn du Code im Kommentar hinterlegen willst, dann muss der Code maskiert sein. Dann wird er nicht interpretiert. Der Code muss mit Hilfe von HTML-Entities dargestellt werden, d.h. dass man z.B. < als &lt; und > als &gt; einfügt.

E-Mail-Benachrichtigung bei neuen Kommentaren ?
Wenn der Haken in der Checkbox gesetzt ist, dann wirst du über neue Kommentare vie E-Mail informiert. Der Versand erfolgt nur, wenn du die URL in der Bestätigungs-E-Mail genutzt hast oder schon Abonnent hier im Blog bist.

Kommentar erscheint nicht:
Alle Kommentare werden manuell geprüft, freigegeben und nach Möglichkeit beantwortet. Bitte um etwas Geduld und Nachsicht.

Identifikationsbilder (Avatare):
Auf Gravatar.com kann man sich mit seiner E-Mail-Adresse registrieren und ein Bild hochladen, dann erscheint dieses Gravatar hier und in vielen weiteren Blogs.

Spamschutz:
Das Kommentarformular ist mit einem Spamschutz ausgerüstet. Solltest du diesen Artikel ohne JavaScript besuchen und kommentieren wollen, so muss du die Frage beantworten und das jeweilige Wort in das Textfeld eingeben.