是否有任何工具可以列出PHP文件使用的类的名称?
例如,如果我在此文件上运行它:
<?
class Test {
public function __construct(Obj1 $x) {
$y = new Obj2();
$str = "Obj3";
$z = new $str();
}
}
?>
它将报告“Obj1”和“Obj2”。如果它真的很聪明,它也可以报告“Obj3”,但这不是必需的。
我正在尝试打包一些代码,我想要一些帮助以确保我不会错过任何依赖项。
有一种名为PHP_Depend的东西,它可以绘制依赖项的数量,但不能报告它们是什么。
更新:我没有找到真正的解决方案,但我想出了一些足够接近我的目的。您可以标记文件,并搜索所有T_STRING标记。这将为您提供文件中提到的所有类名。它还会为您提供其他功能,如函数名称和常量。但是,如果您的类名易于区分(例如,他们有初始上限),那么这应该不是问题。
$contents = file_get_contents($path);
$tokens = token_get_all($contents);
foreach ($tokens as $token) {
if (is_array($token) && $token[0] === T_STRING) {
echo $token[1]."\n";
}
}