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


How to get all use statements declared in PHP class file

假设我有以下类:

<?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 语句":

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

可以在这里找到一个工作示例:https://github.com/lingtalfi/TokenFun#tokenfindertool

此外,这篇文章中还描述了另一种解决方案:从 PHP 代码库中检测/删除未使用的"use"语句的最简单方法