Günther S: Zeile einer php-Datei in der ein Befehl steht?

Hallo zusammen,

ich schreibe gerade an einer eigenen Fehler- und Debug-Klasse in PHP.
Je nach Debug-"Stufe" werden z.b. alle Fehlermeldungen oder alle Debugmeldungen ausgegeben.

Ein Bsp.:
Vor einem MySQL-Query gebe ich die Debug-Meldung "Vor Query zum Auslesen aller Produkte" an.
Nun wäre es sehr praktisch, wenn man automatisch von PHP herausfinden lassen könnte, in welcher Zeile ein bestimmter Befehl ausgeführt wird (also genau das, was auch in den Fehlermeldungen von PHP passiert.. 'unexpected ... on line X') - so dass ich dann im Endeffekt im Browser anzeigen soetwas in der Art anzeigen lassen kann:
"Vor Query zum AUslesen aller Produkte (Zeile 149)" ohne eben immer explizit die Zeile in die Meldung mit hineinzuschreiben.

Ist das irgendwie mit PHP möglich?

Liebe Grüße,
Günther S.

  1. Hallo Günther,

    "Vor Query zum AUslesen aller Produkte (Zeile 149)" ohne eben immer explizit die Zeile in die Meldung mit hineinzuschreiben.

    Ist das irgendwie mit PHP möglich?

    [x] Du suchst mit 100%iger Wahrscheinlichkeit die magische Konstante "LINE".

    Grüße

    Marc Reichelt || http://www.marcreichelt.de/

    --
    Linux is like a wigwam - no windows, no gates and an Apache inside!
    Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)
    http://emmanuel.dammerer.at/selfcode.html
  2. Hallo Günther,

    Ist das irgendwie mit PHP möglich?

    Schau dir mal die Funktion debug_backtrace() an.

    Grüße aus Nürnberg
    Tobias

  3. echo $begrüßung;

    ich schreibe gerade an einer eigenen Fehler- und Debug-Klasse in PHP.

    Dazu verwendest du sicher einen eigenen Error-Handler mit set_error_handler().

    Vor einem MySQL-Query gebe ich die Debug-Meldung "Vor Query zum Auslesen aller Produkte" an.

    Dazu bietet sich trigger_error() an.

    Nun wäre es sehr praktisch, wenn man automatisch von PHP herausfinden lassen könnte, in welcher Zeile ein bestimmter Befehl ausgeführt wird

    Dein Error-Handler bekommt unter anderem die auslösende Datei und Zeile übergeben.

    echo "$verabschiedung $name";