在将文件包含在FileReflection()之前,有没有办法验证文件是否包含类,接口或函数?

时间:2014-12-06 15:54:52

标签: php regex reflection

我们已经运行了一个树遍历循环,它可以很好地识别PHP文件,但是对于每个文件,我们运行PHP FileReflection来对付它需要文件包括首先。出于此脚本的目的,我们仅对包含ClassInterfaceFunction声明的文件感兴趣。

在运行Class之前,有没有办法确定文件是否包含InterfaceFunctioninclude()声明? < / p>

我的猜测是,它必须是get_file_contents()值的正则表达式,但我希望有一个更优雅(读取:一致且可靠)的解决方案。

1 个答案:

答案 0 :(得分:0)

对于那些感兴趣的人,我自己找到了答案......

$tokens = token_get_all(file_get_contents($file,TRUE)); $valid = FALSE; foreach($tokens as $token) { if (isset($token[0]) && in_array($token[0],array(T_CLASS,T_FUNCTION,T_INTERFACE))) { $valid = TRUE; break; } } if (!$valid) { return NULL; } include_once $file; $reflection = new FileReflection($file); ...