PHP中是否有任何反射/自省/魔术,可以让您找到定义了特定类(或函数)的PHP文件?
换句话说,我有一个PHP类或实例化对象的名称。我想将此传递给 某个东西 (函数,Reflection类等),该东西将返回定义该类的文件系统路径。
/path/to/class/definition.php
我意识到我可以使用(get_included_files())获取到目前为止已包含的所有文件的列表,然后手动解析它们,但是一次尝试就需要大量文件系统访问。
get_included_files())
我还意识到我可以在__autoload机制中编写一些其他代码,以将该信息缓存到某个地方。但是,在我所考虑的情况下,修改现有的__autoload是不可行的。
听到可以做到这一点的扩展会很有趣,但我最终希望可以在“常规”安装中运行的扩展。
尝试 ReflectionClass
ReflectionClass
例:
class Foo {} $reflector = new \ReflectionClass('Foo'); echo $reflector->getFileName();
false当找不到文件名时,例如在本机类上,将返回此值。
false