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

时间:2015-01-29 00:19:45

标签: php namespaces

假设我有以下课程:

<?php
namespace ImTheVendor\Project5;

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

class Something
{

}

如何使用use语句声明所有名称空间?我是否必须对文件进行正则表达式,或者有更简单的方法吗?

1 个答案:

答案 0 :(得分:0)

我会使用TokenFinderTool :: getUseDependencies方法。

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

此外,它有一个方法可以找到所有&#34; use语句&#34;在给定目录中:

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

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

此外,本文还介绍了另一种解决方案: Easiest way to detect/remove unused `use` statements from PHP codebase