1

可能重复:
查找定义类的 PHP 文件(在运行时)

我正在使用其他人(当前不可用)设置的服务器。我正在尝试找到 apache(或其他)正在预加载的类的源代码,以便我可以将源代码更新为该类的正确版本。运行这个:

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

(作为整个 php 文件)打印出是。如何找出该类来自哪个文件?我已经对服务器进行了grep,并且有一长串可能的文件,但宁愿只知道我需要更改哪个文件,而无需进行大量猜测和检查。是否有函数可以告诉我带有该类名的源代码的文件?

谢谢

4

2 回答 2

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

请参阅http://php.net/manual/en/reflectionclass.getfilename.php中反射类的文档页面

根据文档,PHP 核心(或扩展)定义的类会导致getFileName()方法返回FALSE

if ($r->getFileName() === FALSE) {echo 'Defined by PHP';}
于 2012-11-26T23:39:02.507 回答
1

检查包含路径以查看哪些目录是相关的。

获取包含路径

http://php.net/manual/de/function.get-include-path.php

使用反射类获取实际文件 http://de1.php.net/manual/de/reflectionclass.getfilename.php

于 2012-11-26T23:13:22.800 回答