j'ai un script qui appelle une fonction dans un autre script.
dans cette fonction je fais des controles (sur les arguments passé entre
autre), et eventuellement en cas de problem je déclanche un trigger_error
Mais voila, le bleme, j'ai plus (+) besoin de connaitre le fichier appellant
la fonction que l'endroit d'ou je déclanche le trigger_error...
Donc y a t-il un moyen de connaitre le fichier et la ligne du fichier qui a
réalisé l'appel de la fonction?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
ED
Etienne SOBOLE wrote:
Mais voila, le bleme, j'ai plus (+) besoin de connaitre le fichier appellant la fonction que l'endroit d'ou je déclanche le trigger_error... Donc y a t-il un moyen de connaitre le fichier et la ligne du fichier qui a réalisé l'appel de la fonction?
Si tu as un PHP >= 4.3.0 tu as le superbe debug_backtrace() qui te donne l'état de la pile d'appel de fonction (n° de ligne et fichier où à eu lieu l'appel, valeur des paramètres, nom de la focntion et de la classe, etc.).
Personnellement j'utilise ça dans une bonne partie de mes gestions d'erreurs. Par exemple dans le gestionnaire d'erreur qui capte les problèmes de requête base de données je n'ai pas besoin de la position de l'appel (la classe d'abstraction) mais plus de celui qui a généré cet appel (la méthode qui a appelé la classe d'abstraction). Je lis le backtrace et je le rajoute au message d'erreur. Si tu as une application stable qui ne fait pas ou peu d'intervention dans les logs tu peux aussi faire un gestionnaire d'erreur qui fait un fichier à chaque erreur dans un répertoire /log. Si tu y met le résultat de debug_backtrace (sérialisé) tu pourras très facilement comprendre ce qu'il s'est passé pour le déboggage.
http://www.php.net/debug_backtrace
-- Eric Daspet * Vous cherchez une doc sur PHP 5 ? *PHP 5 avancé*, aux éditions Eyrolles http://www.eyrolles.com/Informatique/Livre/9782212113235/-PHP-5-avance
Etienne SOBOLE wrote:
Mais voila, le bleme, j'ai plus (+) besoin de connaitre le fichier appellant
la fonction que l'endroit d'ou je déclanche le trigger_error...
Donc y a t-il un moyen de connaitre le fichier et la ligne du fichier qui a
réalisé l'appel de la fonction?
Si tu as un PHP >= 4.3.0 tu as le superbe debug_backtrace() qui te donne
l'état de la pile d'appel de fonction (n° de ligne et fichier où à eu
lieu l'appel, valeur des paramètres, nom de la focntion et de la classe,
etc.).
Personnellement j'utilise ça dans une bonne partie de mes gestions
d'erreurs. Par exemple dans le gestionnaire d'erreur qui capte les
problèmes de requête base de données je n'ai pas besoin de la position
de l'appel (la classe d'abstraction) mais plus de celui qui a généré cet
appel (la méthode qui a appelé la classe d'abstraction). Je lis le
backtrace et je le rajoute au message d'erreur.
Si tu as une application stable qui ne fait pas ou peu d'intervention
dans les logs tu peux aussi faire un gestionnaire d'erreur qui fait un
fichier à chaque erreur dans un répertoire /log. Si tu y met le résultat
de debug_backtrace (sérialisé) tu pourras très facilement comprendre ce
qu'il s'est passé pour le déboggage.
http://www.php.net/debug_backtrace
--
Eric Daspet
*
Vous cherchez une doc sur PHP 5 ? *PHP 5 avancé*, aux éditions Eyrolles
http://www.eyrolles.com/Informatique/Livre/9782212113235/-PHP-5-avance
Mais voila, le bleme, j'ai plus (+) besoin de connaitre le fichier appellant la fonction que l'endroit d'ou je déclanche le trigger_error... Donc y a t-il un moyen de connaitre le fichier et la ligne du fichier qui a réalisé l'appel de la fonction?
Si tu as un PHP >= 4.3.0 tu as le superbe debug_backtrace() qui te donne l'état de la pile d'appel de fonction (n° de ligne et fichier où à eu lieu l'appel, valeur des paramètres, nom de la focntion et de la classe, etc.).
Personnellement j'utilise ça dans une bonne partie de mes gestions d'erreurs. Par exemple dans le gestionnaire d'erreur qui capte les problèmes de requête base de données je n'ai pas besoin de la position de l'appel (la classe d'abstraction) mais plus de celui qui a généré cet appel (la méthode qui a appelé la classe d'abstraction). Je lis le backtrace et je le rajoute au message d'erreur. Si tu as une application stable qui ne fait pas ou peu d'intervention dans les logs tu peux aussi faire un gestionnaire d'erreur qui fait un fichier à chaque erreur dans un répertoire /log. Si tu y met le résultat de debug_backtrace (sérialisé) tu pourras très facilement comprendre ce qu'il s'est passé pour le déboggage.
http://www.php.net/debug_backtrace
-- Eric Daspet * Vous cherchez une doc sur PHP 5 ? *PHP 5 avancé*, aux éditions Eyrolles http://www.eyrolles.com/Informatique/Livre/9782212113235/-PHP-5-avance
Paul Delannoy
Etienne SOBOLE a écrit:
salut.
j'ai un script qui appelle une fonction dans un autre script. dans cette fonction je fais des controles (sur les arguments passé entre autre), et eventuellement en cas de problem je déclanche un trigger_error
Mais voila, le bleme, j'ai plus (+) besoin de connaitre le fichier appellant la fonction que l'endroit d'ou je déclanche le trigger_error... Donc y a t-il un moyen de connaitre le fichier et la ligne du fichier qui a réalisé l'appel de la fonction?
Rajoutes un parametre dans l'appel, p ex $script_appelant et affecte lui pour valeur la donnée $_SERVER['PHP_SELF'] avant l'appel.
merci Etienne
Etienne SOBOLE a écrit:
salut.
j'ai un script qui appelle une fonction dans un autre script.
dans cette fonction je fais des controles (sur les arguments passé entre
autre), et eventuellement en cas de problem je déclanche un trigger_error
Mais voila, le bleme, j'ai plus (+) besoin de connaitre le fichier appellant
la fonction que l'endroit d'ou je déclanche le trigger_error...
Donc y a t-il un moyen de connaitre le fichier et la ligne du fichier qui a
réalisé l'appel de la fonction?
Rajoutes un parametre dans l'appel, p ex $script_appelant et affecte lui
pour valeur la donnée $_SERVER['PHP_SELF'] avant l'appel.
j'ai un script qui appelle une fonction dans un autre script. dans cette fonction je fais des controles (sur les arguments passé entre autre), et eventuellement en cas de problem je déclanche un trigger_error
Mais voila, le bleme, j'ai plus (+) besoin de connaitre le fichier appellant la fonction que l'endroit d'ou je déclanche le trigger_error... Donc y a t-il un moyen de connaitre le fichier et la ligne du fichier qui a réalisé l'appel de la fonction?
Rajoutes un parametre dans l'appel, p ex $script_appelant et affecte lui pour valeur la donnée $_SERVER['PHP_SELF'] avant l'appel.
merci Etienne
Etienne SOBOLE
"ED" a écrit dans le message de news: 40d452a3$0$296$
Si tu as un PHP >= 4.3.0 tu as le superbe debug_backtrace() qui te donne l'état de la pile d'appel de fonction (n° de ligne et fichier où à eu lieu l'appel, valeur des paramètres, nom de la focntion et de la classe, etc.).
Arg. mais c'est complètement ce que je cherchais... mais comment j'ai fais pour ne pas la voir !!!
purée... j'ai du caca dans les yeux ou quoi ;) Merci. c'est trop top !!!
Etienne
"ED" <news-but-no-spam@dreams4net.com> a écrit dans le message de news:
40d452a3$0$296$636a15ce@news.free.fr...
Si tu as un PHP >= 4.3.0 tu as le superbe debug_backtrace() qui te donne
l'état de la pile d'appel de fonction (n° de ligne et fichier où à eu
lieu l'appel, valeur des paramètres, nom de la focntion et de la classe,
etc.).
Arg.
mais c'est complètement ce que je cherchais...
mais comment j'ai fais pour ne pas la voir !!!
purée... j'ai du caca dans les yeux ou quoi ;)
Merci.
c'est trop top !!!
"ED" a écrit dans le message de news: 40d452a3$0$296$
Si tu as un PHP >= 4.3.0 tu as le superbe debug_backtrace() qui te donne l'état de la pile d'appel de fonction (n° de ligne et fichier où à eu lieu l'appel, valeur des paramètres, nom de la focntion et de la classe, etc.).
Arg. mais c'est complètement ce que je cherchais... mais comment j'ai fais pour ne pas la voir !!!
purée... j'ai du caca dans les yeux ou quoi ;) Merci. c'est trop top !!!