假设我有以下类:
<?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"语句的最简单方法