Page 1 sur 1
Retrouver le fichier d'appel d'une fonction.
Posté : 13 janv. 2008, 20:35
par momox
Bonsoir la cie,
je cherche dans la doc une fonction qui permettrait de retrouver depuis ou à été appelée une fonction, une méthode ou une classe mais je n'arrive pas à trouver...
Quelqu'un saurait t'il si une fonction de ce genre existe, ce qui m'éviterais d'avoir a farfouiller le callstack...
Merci d'avance

Posté : 13 janv. 2008, 20:47
par titerm
C'est forcement dans la pile que tu trouveras ta solutions, probablement via une fonction telle que debug_backtrace()
Posté : 13 janv. 2008, 20:50
par momox
C'est forcement dans la pile que tu trouveras ta solutions, probablement via une fonction telle que debug_backtrace()
Justement, j'avais regardé la dedans, c'est un peu déroutant au début, mais je vais m'y faire

Posté : 13 janv. 2008, 21:32
par zeus
Regarde du côté de la constante
__FILE__
Posté : 13 janv. 2008, 21:50
par momox
La constante __FILE__ retourne uniquement le fichier courant, ce qui veut dire que si j'ai une fonction toto dans le fichier tata.php qui est inclu dans titi.php, le __FILE__ dans la fonction toto me retournera tata.php, que je l'appelle depuis tata.php ou titi.php
Voila

Posté : 13 janv. 2008, 21:52
par zeus
Le chemin complet et le nom du fichier courant. Si utilisé dans un include, le nom du fichier inclus est retourné
La doc te donne tord
De plus, j'utilise cette constante régulièrement pour du debugage.
Posté : 13 janv. 2008, 22:42
par Hubert Roksor
En fait vous êtes en train de dire la même chose, que la constante __FILE__ renvoit le fichier dans lequel elle est utilisée. D'ailleurs, c'est entre autres à causes de ce genre de problème de communication que je déteste passionément l'usage de "toto", "tata" et les autres.
Pour le reste, comme tu as dû t'en apercevoir, il n'y a pas d'autre façon qu'utiliser la pile, et uniquement à des fins de débogage. Si ta fonction a besoin de connaitre l'appelant pour fonctionner, c'est qu'il y a un problème de conception quelque part.
Posté : 14 janv. 2008, 01:48
par Xenon_54
Le chemin complet et le nom du fichier courant. Si utilisé dans un include, le nom du fichier inclus est retourné
La doc te donne tord
De plus, j'utilise cette constante régulièrement pour du debugage.
N'est-ce pas cela que
momox a dit?
Si
__FILE__ est affiché à partir de
include.php qui est lui-même inclus dans
index.php,
include.php s'affichera. Non? (je viens de faire le test)
Posté : 14 janv. 2008, 09:26
par zeus
Effectivement, comme le dit
Hubert, je dit exactement la même chose que
momox. En lisant rapidement, je pensais qu'il disait le contraire.
Toujours est-il que je pensais que c'était ce qui était demandé

Posté : 14 janv. 2008, 22:05
par momox
Ce que je voulais savoir, ce n'étais pas le fichier de déclaration de la fonction en elle même, mais le fichier depuis laquelle on l'appelle

Je vais donc me tourner de ce pas vers debug_backtrace()
