我们已经运行了一个树遍历循环,它可以很好地识别PHP文件,但是对于每个文件,我们运行PHP FileReflection
来对付它需要文件包括首先。出于此脚本的目的,我们仅对包含Class
,Interface
或Function
声明的文件感兴趣。
在运行Class
之前,有没有办法确定文件是否包含Interface
,Function
或include()
声明? < / p>
我的猜测是,它必须是get_file_contents()
值的正则表达式,但我希望有一个更优雅(读取:一致且可靠)的解决方案。
答案 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);
...