【问题标题】:Finding PHP dependencies查找 PHP 依赖项
【发布时间】:2011-02-12 04:23:27
【问题描述】:

有没有工具可以列出 PHP 文件使用的类的名称?

例如,如果我在这个文件上运行它:

<?
class Test {
  public function __construct(Obj1 $x) {
    $y = new Obj2();
    $str = "Obj3";
    $z = new $str();
  }
}
?>

它会报告“Obj1”和“Obj2”。如果它真的很聪明,它也可能会报告“Obj3”,但这不是必需的。

我正在尝试打包一些代码,我需要一些帮助以确保我没有遗漏任何依赖项。

有一个叫做PHP_Depend的东西,它可以绘制依赖关系的数量,但不能报告它们是什么。

更新:我没有找到真正的解决方案,但我想出了一些足够接近我的目的的方法。您可以对文件进行标记,并搜索所有 T_STRING 标记。这将为您提供文件中提到的所有类名。它还会为您提供其他内容,例如函数名称和常量。但是如果你的类名很容易区分(例如,它们有首字母大写),那么这应该不是问题。

$contents = file_get_contents($path);
$tokens = token_get_all($contents);
foreach ($tokens as $token) {
  if (is_array($token) && $token[0] === T_STRING) {
    echo $token[1]."\n";
  }
}

【问题讨论】:

  • 嗯,classes 的名称与查找文件依赖关系并不真正相关,是吗?因为有许多关于查找文件依赖项的 SO 问题。
  • 我认为如果不实际运行代码,您将无法找到文件依赖项。但我认为解析器至少可以提取类名,这对我的目的来说应该足够了。
  • 关于这是一个较老的问题,你有没有发现比标记器更好的东西?我正在寻找完全按照您的描述做的事情。
  • 不,什么都没找到。

标签: php dependencies


【解决方案1】:

PHPXref,这是一个PHP交叉引用文档生成器。

【讨论】:

    猜你喜欢
    • 2016-05-24
    • 1970-01-01
    • 1970-01-01
    • 2018-02-23
    • 2014-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-07
    相关资源
    最近更新 更多