Zend Engine 2 : fonction debug_backtrace()
Par Auteur INTERNE, mercredi 17 juillet 2002 à 22:49 :: Lu sur le Web :: #540 :: rss
La fonction debug_backtrace() présente dans le nouveau moteur php permet de faciliter les opérations de debug sur des problématiques d’appels de fonctions et/ou de méthodes.
Intérêts
En fait, cette fonctionnalité est intéressante dès que l’on se pose une question du type ‘mais qui appelle cette fonction ou cette méthode ?’.
Cela peut être d’autant plus pertinent que l’on n’est pas à l’origine du code en question (sic) et/ou que des appels dynamiques de fonctions sont utilisés. Ou bien encore que le code est réellement volumineux et empile un nombre important de couches successives.
Principe
Le principe est simplissime, l’on fait appel à la fonction debug_backtrace dans la fonction ou la méthode qui pose potentiellement problème. Et l’on obtient un tableau contenant le nom de la fonction ou méthode d’où provient l’appel, avec en prime le nom du fichier et la ligne précise.
Exemple basique
Soit le code suivant,
<?php
function foo() {
print_r(debug_backtrace()); // Affiche la pile d’appel
}
function call_foo(){
foo();
}
call_foo();
?>
Il va produire en sortie,
Array
(
[0] => Array
(
[function] => foo
[file] => /home/foo/test.php
[line] => 8
)
[1] => Array
(
[function] => call_foo
[file] => /home/foo/test.php
[line] => 11
)
)
En effet debug_backtrace, ne se contente pas de renvoyer les informations sur la fonctions immédiatement appelante, mais permet de tracer l’ensemble de la pile d’appel.Consulter le lien







Commentaires
Aucun commentaire pour le moment.
Ajouter un commentaire
Vous pouvez soumettre un commentaire en remplissant le formulaire ci-dessous. Toutes les contributions font l'objet d'une étape de modération par notre équipe.
Le code HTML dans le commentaire sera affiché comme du texte, les adresses internet seront converties automatiquement.