SuperAPI AI 工具集

phpstan-developer

通用与其它

查看项目

更新于 10-16 03:40

技能介绍

用途:帮助开发者编写 PHPStan 自定义规则(Rule)、收集器(Collector)与扩展,对 PHP 代码进行静态分析并报告自定义错误。适用于创建、修改或解释 PHPStan 规则、跨文件分析及测试。

主要能力:PHPStan 通过遍历 PHP-Parser AST、借助类型系统解析类型,并在 processNode() 中报告错误。规则类直接实现 Rule 接口,需提供 getNodeType() 与 processNode(),返回 list<IdentifierRuleError>。可用 RuleErrorBuilder 构建错误,支持 message、identifier(必填,camelCase 点分隔)、line、tip、nonIgnorable、fixNode 等。跨文件分析(如查找未使用项、检查对 X 的所有调用)使用 Collector 收集数据,再由 CollectedDataNode 规则报告,此时需显式设置 file 与 line。

使用方式:先用 var_dump(get_class($node)) 或 php-parser 文档确定目标节点类型;编写规则类与继承 RuleTestCase 的测试类及 fixture 文件;在 neon 配置中注册规则。简单规则可用 rules: 简写,带依赖的规则用 services: 并打 phpstan.rules.rule 标签,收集器打 phpstan.collector 标签。测试用 analyse() 断言 [message, line] 或 [message, line, tip],每个场景一个 fixture 文件。

适用场景:需要为项目定制静态检查、跨文件一致性检查或自动修复提示时。

限制:fixNode() 仅能就地替换单个节点,复杂修复应改用 Rector;判断类型时不要用 instanceof,应使用 is*() 方法;TrinaryLogic 有 yes/no/maybe 三态。资料未提供安装命令、收费与平台信息。