如何获取 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
假设我有一个追随者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