Phan静态分析工具命令行参数完全指南
2025-07-08 01:11:06作者:钟日瑜
Phan是一个强大的PHP静态分析工具,能够帮助开发者发现代码中的潜在问题。本文将全面解析Phan的命令行参数,帮助开发者更好地利用这个工具提升代码质量。
基本使用方式
Phan的基本命令格式为:
./phan [选项] [文件...]
文件与目录分析选项
指定分析范围
-f/--file-list <filename>
:从文件中读取待分析的PHP文件列表-l/--directory <directory>
:指定要分析的目录,可多次使用--exclude-file <file>
:排除特定文件不进行分析-3/--exclude-directory-list <dir_list>
:排除目录列表(逗号分隔),这些目录中的文件不会被分析但类和方法信息会被包含-I/--include-analysis-file-list <file_list>
:仅分析指定文件列表(逗号分隔)
项目配置
-d/--project-root-directory </path/to/project>
:指定项目根目录,默认为当前目录-k/--config-file <file>
:指定配置文件路径,默认使用.phan/config.php
初始化配置
使用--init
选项可以快速生成配置文件:
phan --init [--init-level=3] [--init-analyze-dir=path/to/src] [--init-analyze-file=path/to/file.php] [--init-no-composer]
--init-level
:设置初始化严格级别(1-5,1最严格)--init-analyze-dir
:添加额外分析目录--init-analyze-file
:添加额外分析文件--init-no-composer
:声明非Composer项目--init-overwrite
:允许覆盖现有配置文件
输出控制
-m/--output-mode <mode>
:输出格式(text/verbose/json/csv/codeclimate/checkstyle/pylint/html)-o/--output <filename>
:输出到文件-C/--color/--no-color
:启用/禁用彩色输出--color-scheme
:设置颜色方案(default/code/eclipse_dark/vim/light/light_high_contrast)-p/--progress-bar
:显示进度条
分析深度与类型检查
严格检查选项
--strict-method-checking
:严格方法调用检查--strict-param-checking
:严格参数类型检查--strict-property-checking
:严格属性类型检查--strict-object-checking
:严格对象属性访问检查--strict-return-checking
:严格返回值类型检查-S/--strict-type-checking
:启用所有严格检查
其他分析选项
-q/--quick
:快速模式(不深入分析所有函数调用)-b/--backward-compatibility-checks
:检查PHP5到PHP7的兼容性问题--target-php-version
:指定目标PHP版本--minimum-target-php-version
:指定最低PHP版本要求
代码质量检测
-x/--dead-code-detection
:检测死代码-u/--unused-variable-detection
:检测未使用变量-t/--redundant-condition-detection
:检测冗余条件--constant-variable-detection
:检测可替换为常量的变量-X/--dead-code-detection-prefer-false-positive
:死代码检测偏向误报
性能与并行处理
-j/--processes <int>
:设置并行分析进程数--disable-cache
:禁用AST缓存--disable-plugins
:禁用插件运行-P/--plugin <pluginName|path/to/Plugin.php>
:添加插件
高级功能
守护进程模式
-s/--daemonize-socket </path/to/file.sock>
:Unix套接字守护模式--daemonize-tcp-host <hostname>
:TCP主机守护模式--daemonize-tcp-port <port>
:TCP端口守护模式
基线管理
--save-baseline <path/to/baseline.php>
:生成问题基线-B/--load-baseline <path/to/baseline.php>
:加载问题基线
语言服务器协议
--language-server-on-stdin
:通过标准输入启动语言服务器--language-server-tcp-server <addr>
:TCP方式启动语言服务器--language-server-tcp-connect <addr>
:TCP方式连接语言服务器--language-server-analyze-only-on-save
:仅在保存时分析
调试与诊断
-D/--debug
:打印调试信息--debug-signal-handler
:设置信号处理器--print-memory-usage-summary
:打印内存使用摘要--dump-ast
:输出AST而非分析--dump-parsed-file-list
:输出待分析文件列表--dump-signatures-file <filename>
:输出方法签名到文件
其他实用选项
-v/--version
:显示版本信息-h/--help
:显示帮助信息--extended-help
:显示扩展帮助信息--help-annotations
:显示支持的注解信息--require-config-exists
:要求配置文件必须存在
通过合理组合这些参数,开发者可以根据项目需求定制Phan的分析行为,从而更高效地发现和解决代码中的潜在问题。