You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调试与报告需求:Rector规则能否获取当前解析文件名?

Rector规则中访问当前解析文件名的方法

当然可以访问当前解析的文件名,在Rector规则里实现这个需求很直接:

  • 如果你是继承AbstractRector编写自定义规则,类中已经内置了$file属性(类型为\PhpParser\Node\Stmt\File),直接调用其getFilePath()方法就能获取完整文件名。
  • 在你的重构逻辑(比如refactor()方法)中,可在过滤操作后、执行修改前打印文件名,示例代码如下:
public function refactor(Node $node): ?Node
{
    // 你的高度特定过滤逻辑
    if (!$this->matchesYourFilter($node)) {
        return null;
    }

    // 打印通过过滤的文件名
    $currentFilePath = $this->file->getFilePath();
    echo "处理文件:{$currentFilePath}\n";

    // 后续重构操作
    // ...

    return $node;
}
  • 这种方式能确保你清晰看到哪些文件通过了过滤,避免Rector因无修改输出而产生的报告问题,完全满足调试和报告需求。

内容的提问来源于stack exchange,提问作者realtebo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 09:10:19