phpbar.de logo

Mailinglisten-Archive

[php] Debugger

[php] Debugger

Martin martin.osterbeck_(at)_gmx.net
Sat, 27 Jan 2001 19:19:18 +0100


Hallo Liste

Ich hab bei meiner Arbeit mit PHP festgestellt, daß es ziemlich nervig
sein kann sich die Werte von Variablen mit 'echo' ausgeben zu lassen.
Manchmal passt das einfach nicht ins Skript.
Ich habe deshalb eine Debugger-Klasse geschrieben mit zwei Methoden. Mit
der einen sammel ich die Variablen ein und mit der anderen gebe ich sie
am Ende des Skriptes als formatierte Tabelle wieder aus.
Mit Angabe von Zeilennummer, der Datei (wegen includes), Name, Wert und
Typ der Variablen.


class debug{

var $haltepunkte=array();

     function haltepunkt($zeilennummer,$datei,$variablenname,$variable){


$string="<tr><td>$datei</td><td>$zeilennummer</td><td>$variablenname</td>";


$string.="<td>".gettype($variable)."</td><td>$variable</td></tr>";
          $this->haltepunkte[]=$string;
     }

        function ausgabe(){
          echo "<table border=\"0\" bgcolor=\"#00ccff\"><tr
bgcolor=\"#6699ff\"><td><b>Datei</b></td>";
          echo "<td><b>Zeilennummer</b></td>";
          echo "<td><b>Name</b></td>";
          echo "<td><b>Typ</b></td>";
          echo "<td><b>Wert</b></td></tr>";
          for($i=0;$i<sizeof($this->haltepunkte);$i++){
               echo $this->haltepunkte[$i];
          }
          echo "</table>";
       }
}


Das Ding ist wirklich nützlich. Ätzend ist nur, daß ich der Methode
"haltepunkt" vier Argumente übergeben muß, um die Variable $variable zu
überwachen.

$deb->haltepunkt( __LINE__ , __FILE__, "name_der_variablen" ,
$variable);

Die Konstanten __LINE__ und __FILE__ geben die Zeilennummer und das
Skript das gerade geparst wird wieder. Mir ist leider keine Möglichkeit
eingefallen wie ich an die Werte kommen könnte, ohne __LINE__ und
__FILE__ jedesmal als Argumente zu übergeben. Den Namen der Variablen
muß ich auch als String mit übergeben, da er sonst innerhalb der Methode
nicht verfügbar ist.
Ich bin aber von Natur aus faul, darum hätte ich gerne einen
Methodenaufruf wie diesen:

$deb->haltepunkt($variable);

Hat irgend jemand Verbesserungsvorschläge???
Kritik??
Ich arbeite erst seit zwei Monaten mit PHP, und darum würde mich auch
interessieren was alte Hasen dazu sagen(Cool oder unnützer Schrott??).

Gruß
#### Martin ####



php::bar PHP Wiki   -   Listenarchive