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

如何让PHPStan仅分析文件中今日及以后编写的新增代码?

只让PHPStan分析旧文件中今日新增代码的解决方案

针对你在旧文件中新增代码、需要PHPStan仅检查今日及以后内容的需求,提供几个实用方案:

一、手动标记旧代码区域(快速小范围处理)

直接用PHPStan的区域忽略注释包裹旧代码,让它只分析新写的部分:

/* @phpstan-ignore-start */
// 今日之前编写的旧代码块
function legacyLogic() {
    // 旧逻辑,PHPStan会完全跳过检查
}
/* @phpstan-ignore-end */

// 今日新增的代码,PHPStan正常分析
function newFeature() {
    return 'new implementation';
}

这个方法无需额外工具,适合修改量不大的文件,精准控制分析范围。

二、结合Git自动筛选变更代码(批量高效处理)

如果需要自动识别今日新增的代码行,推荐用Git diff配合PHPStan的工具或脚本:

方法A:使用phpstan-focus扩展

这个工具能自动读取Git的变更记录,让PHPStan只分析你新增/修改的代码块,完美适配旧文件中加新代码的场景:

  1. 安装扩展:
composer require --dev szepeviktor/phpstan-focus
  1. 执行分析:
phpstan analyze --focus

它会自动过滤出Git中今日提交的变更代码,只对这部分做检查,不用手动拆分目录或标记注释。

方法B:自定义Git脚本筛选行号

如果不想用第三方扩展,可以写简单脚本结合Git命令找出今日修改的行号,再让PHPStan只关注这些行:

  1. 用Git blame获取今日修改的行号(以当前文件为例):
git blame --line-porcelain your-file.php | grep -E "^author-time " | awk '{if ($2 >= strftime("%s", systime()-86400)) print NR}'
  1. 编写脚本将这些行号转换成PHPStan的检查规则,或者配合phpstan analyze --error-format=raw过滤出对应行的错误。

三、指定分析特定新元素(适合结构化新增代码)

如果你的新增代码都是独立的类、函数或方法,可以在phpstan.neon配置文件中指定仅分析这些新元素:

parameters:
    analyzedClasses:
        - App\NewPaymentService
        - App\UserDashboard
    analyzedFunctions:
        - App\calculateDiscount

这种方式需要你手动维护新增元素列表,适合新代码结构清晰、独立于旧逻辑的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 22:55:31