关于 analyse-with-phpstan
面向 PHP 开发者的代码分析技能,通过 PHPStan Playground API 分析代码,并返回 PHP 7.2–8.5 各版本的错误。可设置分析级别及严格规则等选项。
主要功能
- 01调用 PHPStan Playground API
- 02分析 PHP 7.2–8.5 版本
- 03配置分析级别与规则选项
- 04按版本汇总错误结果
- 05生成 Playground 链接
适用场景
- 01检查 PHP 代码的静态分析错误
- 02比较代码在不同 PHP 版本下的结果
- 03按需启用严格规则或 bleeding edge
- 04整理错误并输出 Markdown 报告
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ phpstan/ phpstan --skill analyse-with-phpstan安装后在 Claude Code 中输入/analyse-with-phpstan确认已加载。
详细介绍
使用 PHPStan 分析 PHP 代码
使用 PHPStan playground API(https://api.phpstan.org/analyse)分析 PHP 代码。该 API 会在 PHP 7.2–8.5 上运行 PHPStan,并返回各版本的错误。
要分析的代码:$ARGUMENTS
第 1 步:准备代码
获取要分析的 PHP 代码。如果 $ARGUMENTS 是文件路径,请读取文件内容。代码必须以 <?php 开头。
第 2 步:确定设置
除非用户另有指定,否则使用以下默认值:
- level:
"10"(最严格) - strictRules:
false - bleedingEdge:
false - treatPhpDocTypesAsCertain:
true
如果用户要求启用严格规则或 bleeding edge,请将相应选项设为 true。
第 3 步:调用 playground API
通过 POST 提交代码:
curl -s -X POST 'https://api.phpstan.org/analyse' \
-H 'Content-Type: application/json' \
-d '{
"code": "<PHP code, JSON-escaped>",
"level": "<level>",
"strictRules": <true|false>,
"bleedingEdge": <true|false>,
"treatPhpDocTypesAsCertain": <true|false>,
"saveResult": true
}'
代码值必须经过正确的 JSON 转义(转义引号、反斜杠和换行符)。
第 4 步:解析响应
响应 JSON 包含:
versionedErrors— 对象数组,每个 PHP 版本对应一个对象,其中包含:phpVersion— 整数编码示例:80400= PHP 8.4,70400= PHP 7.4errors— 错误对象数组,包含message、line、identifier、tip(可选)和ignorable
id— 已保存结果的 UUID
将 phpVersion 整数转换为易读的字符串:Math.floor(v / 10000) . Math.floor((v % 10000) / 100)。
第 5 步:以 Markdown 格式呈现结果
按以下格式输出结果:
Playground 链接
https://phpstan.org/r/<id>
使用的设置
Level: <level> | 严格规则: 是/否 | Bleeding edge: 是/否
错误
将错误相同(消息、行号和标识符均相同)的连续 PHP 版本分组为范围。例如,如果 PHP 7.2–8.3 报告相同的错误,则将它们显示为一个组。
如果所有 PHP 版本报告的错误都相同,则显示一个组:
所有 PHP 版本(无差异):
| 行 | 错误 | 标识符 |
|---|---|---|
| 10 | Parameter #1 $foo expects string, int given. | argument.type |
如果不同版本的错误不同,则显示不同的组:
PHP 8.0 – 8.5:
| 行 | 错误 | 标识符 |
|---|---|---|
| 10 | Parameter #1 $foo expects string, int given. | argument.type |
PHP 7.2 – 7.4:
无错误。
如果所有 PHP 版本都没有错误,请说明:所有 PHP 版本均未发现错误。