Helferfunktion: SimpleBacktrace

10. Januar 2008 – 18:45

Nun beginne ich meine schon lang geplante Reihe: Helferfunktionen. Ich meine damit Funktionen, die nicht groß sind aber sehr bei der Entwicklung und im allgemeinen Betrieb helfen können. Angefangen mit SimpleBacktrace.

Jeder der einmal mit Exceptions gearbeitet hat kennt die Backtraces. Damit kann man bequem den Stacktrace (welche Funktion hat welche aufgerufen) nutzen und ihn auch ausgeben. Es gibt jedoch keine Funktion, damit PHP dies auch ohne Exceptions ausgeben kann. Mit debug_backtrace() erhält man zwar einen Backtrace, jedoch nur ein riesen Array. Diese Funktion formatiert diesen ähnlich wie bei Exceptions.

Der Parameter $jumpover ist dazu da, um eine bestimmte Anzahl von Einträgen zu überspringen. Standard ist 1, damit die Funktion selbst nicht im Trace auftaucht. Bei Funktionen die das PHPsche Error-Reporting ersetzen, sollte man diesen Wert auf mind. 2 setzen.

Diese Funktione funktioniert vielleicht mit PHP4, gestetet hab ich es nicht.
Code anzeigen

Als ich diesen Beitrag fast fertig hatte, kam mir eine noch bessere Idee. Nutz Exceptions!Nachteile: Überspringen von Zeilen und eigene Anpassungen sind nicht möglich.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/**
 * Rückgabe eines formatierten Stacktraces von jedem Ort aus.
 * @author Michael Mayr (http://michfrm.net)
 * @return	string
 */
function SimpleBacktrace()
{
	try
	{
		throw new Exception('SimpleBacktrace');
	}
	catch ( Exception $e )
	{
		return $e->getTraceAsString();
	}
}

Code extern anzeigen

Kommentar schreiben