Hívó környezet meghatározása

Néha jól jöhet, ha tudjuk, hogy egy-egy függvényünket milyen környezetből (milyen függvényből, mely osztály mely metódusából, melyik fájlból stb.) hívták meg. Ebben segíthet ez a snippet.

Hogy egy példát is írjak, hogy mikor lehet ez hasznos: tegyük fel, szeretnénk elérni, hogy csak a System nevű osztályunk hívhassa – közvetlenül – a DB osztályunk Query metódusát. A lenti függvény segítségével ez egyszerűen megoldható.

A visszaadott tömb kulcsairól olvashatunk az debug_backtrace függvény leírásánál. Fontos megjegyezni, hogy pont ennek a függvénynek a használata miatt legalább PHP 4.3-ra lesz szükségünk!

1
2
3
4
function caller() {
	$trace = debug_backtrace();
	return array_merge(array('function' => null, 'line' => null, 'file' => null, 'class' => null, 'object' => null, 'type' => null, 'args' => null), IsSet($trace[2]) ? $trace[2] : array());
}

HOZZÁSZÓLOK A CIKKHEZ

Kérjük, írja be véleményét!
írja be ide nevét