2012-11-26 3 views
1

Possible en double:
Finding the PHP File (at run time) where a Class was Definedemplacement du fichier de classe préchargé php

Je travaille avec un serveur que quelqu'un d'autre (actuellement indisponible) mis en place. J'essaie de localiser la source d'une classe qui apache (ou quelque chose d'autre) est le préchargement afin que je puisse mettre à jour le code source à la bonne version de la classe. En cours d'exécution:

<?php echo class_exists('className')? "yes": "no"; ?> 

(comme le fichier php entier) imprime oui. Comment puis-je savoir de quel fichier provient cette classe? J'ai salué le serveur et j'ai une longue liste de fichiers qu'il pourrait être, mais je préférerais juste savoir quel fichier j'ai besoin de changer sans faire beaucoup de deviner et de vérifier. Y at-il une fonction qui me dira le fichier avec le code source pour ce nom de classe?

Merci

Répondre

3
$r = new ReflectionClass('YourClassName'); 
echo $r->getFileName(); 

Voir la page de documentation de la classe de réflexion à http://php.net/manual/en/reflectionclass.getfilename.php

par la documentation, les classes défini par le noyau PHP (ou l'extension) c Utilisez la méthode getFileName() pour renvoyer FALSE.

if ($r->getFileName() === FALSE) {echo 'Defined by PHP';}