Debian如何进行PHP代码质量检查
小樊
43
2025-11-27 06:56:46
在 Debian 上进行 PHP 代码质量检查
一 环境准备
- 安装 PHP 与常用扩展(以 Debian 12 为例,按项目实际版本调整):
- sudo apt-get update
- sudo apt-get install -y php php-cli php-fpm php-mysql php-zip php-gd php-mbstring php-curl php-xml php-bcmath
- 安装 Composer(PHP 依赖管理):
- 下载并安装:curl -sS https://getcomposer.org/installer | php
- 移动到 PATH:sudo mv composer.phar /usr/local/bin/composer
- 建议将 Composer 全局 bin 加入 PATH(如已全局安装 phpunit/phpunit):
- echo ‘export PATH=$HOME/.composer/vendor/bin:$PATH’ >> ~/.bashrc && source ~/.bashrc
- 说明:本文工具以 Composer 安装为主,便于项目级管理与版本控制。
二 静态分析与代码规范
- 基础语法快速检查
- 单文件:php -l path/to/file.php
- 项目目录:find src tests -name “*.php” -exec php -l {} ;
- 代码风格与规范(PSR-12 等)
- 安装:composer require --dev squizlabs/php_codesniffer
- 检查:vendor/bin/phpcs --standard=PSR12 src tests
- 自动修复:vendor/bin/phpcbf --standard=PSR12 src tests
- 代码坏味道与潜在缺陷
- 安装:composer require --dev phpmd/phpmd
- 检查:vendor/bin/phpmd src text cleancode,codesize,controversial,design,naming,unusedcode
- 静态分析(类型、未定义、死代码等)
- 安装:composer require --dev phan/phan
- 依赖:Debian 安装 php-ast 扩展
- sudo apt-get install -y php-ast
- 或 pecl install ast && echo “extension=ast.so” | sudo tee /etc/php/*/cli/conf.d/20-ast.ini
- 初始化配置:vendor/bin/phan --init
- 分析:vendor/bin/phan --allow-polyfill-parser
- 建议:在编辑器(如 PHPStorm)中集成以上工具,边写边提示,减少问题流入提交阶段。
三 单元测试与覆盖率
- 安装 PHPUnit(项目级):
- composer require --dev phpunit/phpunit
- 基本运行:
- 生成 HTML 覆盖率报告(需配置 phpunit.xml 的 白名单):
- 示例 phpunit.xml 片段:
- 执行:vendor/bin/phpunit --coverage-html report/
- 覆盖率报告将生成在 report/ 目录,可用浏览器打开 index.html 查看。
四 提交前与 CI 自动化
- 本地 Git 提交前自动检查(使用 GrumPHP)
- 安装:composer require --dev grumphp/grumphp
- 初始化:vendor/bin/grumphp init(按向导生成 grumphp.yml)
- 常用任务示例(可写入配置):phpcs, phpmd, phpunit, phan
- 测试钩子:vendor/bin/grumphp git:pre-commit
- 持续集成示例(GitHub Actions)
- 示例步骤:
- 安装 PHP 与 Composer
- 缓存 Composer 依赖
- 运行:phpcs、phpmd、phan、phpunit --coverage-text
- 可结合 Codecov 上传覆盖率
- 说明:Laravel 等项目同样以 PHPUnit 为核心,配置 phpunit.xml 后可直接在 CI 中执行 vendor/bin/phpunit。