如何获取 PHP class 文件中声明的所有 use 语句

How to get all use statements declared in PHP class file

假设我有一个追随者class:

<?php
namespace ImTheVendor\Project5;

use ImTheVendor\Project1\SomeClass,
    ImTheVendor\Project2\SomeOtherClass;
use ImTheVendor\Project5\SomeClass;

class Something
{

}

如何获取使用 use 语句声明的所有命名空间?我必须对文件本身进行正则表达式还是有更简单的方法?

我会使用 TokenFinderTool::getUseDependencies 方法。

$f = $modulesDir . "/Bat/FileSystemTool.php";
$tokens = token_get_all(file_get_contents($f));
$dependencies = TokenFinderTool::getUseDependencies($tokens);

此外,它有一个方法可以在给定目录中找到所有 "use statements":

$dir = $modulesDir . "/Bat";
$deps = TokenFinderTool::getUseDependenciesByFolder($dir);

可在此处找到工作示例:https://github.com/lingtalfi/TokenFun#tokenfindertool

此外,此 post 中描述了另一种解决方案: Easiest way to detect/remove unused `use` statements from PHP codebase