温馨提示×

Debian上Composer如何进行代码质量检查

小樊
44
2025-12-26 22:45:18
栏目: 智能运维

Debian上使用Composer进行PHP代码质量检查

一 环境准备

  • 确保已安装 PHP CLIComposer,在项目根目录可正常执行:
    • php -v
    • composer --version
  • 建议使用 项目本地安装(而非全局),便于版本统一与团队协作:进入项目根目录(含 composer.json)再执行安装命令。

二 常用工具与安装

  • 代码风格检查与自动修复
    • PHP_CodeSniffer(PHPCS):检测是否符合规范;PHP_Code Beautifier(PHPCBF):自动修复可修复问题
    • 安装:composer require --dev squizlabs/php_codesniffer
  • 代码风格自动修复(与PHPCS互补)
    • PHP-CS-Fixer:按规则自动格式化
    • 安装:composer require --dev friendsofphp/php-cs-fixer
  • 静态分析(类型与潜在错误)
    • PHPStan:发现类型不匹配、未定义调用等
    • 安装:composer require --dev phpstan/phpstan
  • 代码坏味道与复杂度
    • PHPMD(PHP Mess Detector):检测过长方法、重复代码、未使用代码等
    • 安装:composer require --dev phpmd/phpmd
  • 以上工具均通过 Composer 的 –dev 安装到 vendor/,便于在 CI 或本地统一调用。

三 快速配置与常用命令

  • PHP_CodeSniffer
    • 查看可用标准:./vendor/bin/phpcs -i
    • 检查:./vendor/bin/phpcs --standard=PSR12 src/
    • 自动修复:./vendor/bin/phpcbf --standard=PSR12 src/
    • 推荐在项目根目录添加配置文件 phpcs.xml / phpcs.xml.dist,统一标准与忽略路径,之后直接运行 phpcs 即可生效。
  • PHP-CS-Fixer
    • 在项目根目录创建 .php-cs-fixer.dist.php,示例:
      • use PhpCsFixer\Config; use PhpCsFixer\Finder;
      • $finder = Finder::create()->in(DIR.‘/src’)->in(DIR.‘/tests’);
      • $config = new Config();
      • $config->setRules([‘@PSR12’ => true, ‘array_syntax’ => [‘syntax’ => ‘short’]])->setFinder($finder);
      • return $config;
    • 执行修复:./vendor/bin/php-cs-fixer fix
  • PHPStan
    • 在项目根目录创建 phpstan.neon,示例:
      • parameters:
        • level: 5
        • paths:
          • src
    • 执行分析:./vendor/bin/phpstan analyse
  • PHPMD
    • 在项目根目录创建 phpmd.xml,示例:
      • My custom ruleset.
    • 执行检查:./vendor/bin/phpmd src text phpmd.xml
  • Composer 脚本一键调用(推荐)
    • 在 composer.json 的 scripts 中添加:
      • “scripts”: {
        • “cs:check”: “phpcs --standard=PSR12 src/”,
        • “cs:fix”: “phpcbf --standard=PSR12 src/”,
        • “phpstan”: “phpstan analyse”,
        • “phpmd”: “phpmd src text phpmd.xml”,
        • “php-cs-fixer”: “php-cs-fixer fix”
        • }
    • 之后可直接运行:composer cs:check、composer phpstan、composer phpmd 等。

四 集成到Git与CI

  • Git 提交前本地检查
    • 在 package.json 或 Makefile 中封装脚本,提交前执行:composer cs:check && composer phpstan
    • 也可结合 pre-commit 钩子(如 husky、simple-git-hooks)自动阻断不合规提交。
  • CI 示例(GitHub Actions)
      • name: Run Code Sniffer
      • run: vendor/bin/phpcs --standard=PSR12 src/
      • name: Run PHPStan
      • run: vendor/bin/phpstan analyse
      • name: Run PHPMD
      • run: vendor/bin/phpmd src text phpmd.xml
    • 将检查步骤设置为 required,阻止不合规代码合入。

五 实用建议

  • 组合建议
    • 代码风格:优先使用 PHPCS + PHP-CS-Fixer(前者发现问题,后者自动修复)
    • 静态分析:二选一 PHPStan 或 Psalm(类型与潜在错误)
    • 代码坏味道:PHPMD
  • 配置与协作
    • phpcs.xml / phpstan.neon / phpmd.xml / .php-cs-fixer.dist.php 纳入版本控制,保证团队规则一致
    • EditorConfig 中统一缩进、换行、编码等基础风格,减少工具冲突
  • 渐进式严格
    • PHPStan 从 level 0 起步,逐步提升严格度;PHPCS 先用 PSR12,再按需定制规则。

0