温馨提示×

如何在Debian中使用Composer进行代码质量检查

小樊
40
2025-12-17 03:59:50
栏目: 智能运维

在 Debian 中使用 Composer 进行代码质量检查

一 环境准备

  • 安装 PHP 与常用扩展(确保 CLI 可用):sudo apt update && sudo apt install php php-cli php-xml php-json -y
  • 安装 Composer(全局可用): curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer composer --version
  • 建议将全局 Composer 可执行目录加入 PATH(常见为 ~/.composer/vendor/bin),便于直接运行 phpcs/phpstan/phpmd 等命令。

二 安装与配置常用质量工具

  • 通过 Composer 安装开发依赖(作为 –dev 安装,纳入版本控制便于团队统一): composer require --dev phpstan/phpstan composer require --dev squizlabs/php_codesniffer composer require --dev phpmd/phpmd composer require --dev friendsofphp/php-cs-fixer
  • 建议的配置文件与用途一览(放在项目根目录):
    • PHP_CodeSniffer:phpcs.xml(定义风格标准,如 PSR12
    • PHPMD:phpmd.xml(复杂度、未使用代码等规则)
    • PHP-CS-Fixer:.php-cs-fixer.dist.php(自动修复风格问题)
    • PHPStan:phpstan.neon(分析级别与路径)
  • 示例最小配置:
    • phpcs.xml My project coding standard
    • phpmd.xml Custom rules
    • phpstan.neon parameters: level: 5 paths: - src - tests
    • .php-cs-fixer.dist.php use PhpCsFixer\Config; use PhpCsFixer\Finder; $finder = Finder::create()->in(DIR.‘/src’)->in(DIR.‘/tests’); $config = new Config(); return $config->setRules([‘@PSR12’ => true, ‘array_syntax’ => [‘syntax’ => ‘short’]]) ->setFinder($finder);
  • 如需更强的静态分析,可补充安装 Phan(需启用 php-ast 扩展):sudo apt-get install php-ast;随后 composer require --dev phan/phan 并初始化配置:./vendor/bin/phan --init。

三 用 Composer Scripts 一键执行检查

  • 在 composer.json 中定义脚本,统一团队命令入口: { “scripts”: { “phpstan”: “phpstan analyse --configuration=phpstan.neon src”, “phpcs”: “phpcs --standard=phpcs.xml src”, “phpcbf”: “phpcbf --standard=phpcs.xml src”, “php-cs-fixer”: “php-cs-fixer fix --config=.php-cs-fixer.dist.php”, “phpmd”: “phpmd src text phpmd.xml”, “test”: “phpunit”, “qa”: [“@phpcs”, “@phpstan”, “@phpmd”], “quality”: [“@qa”, “@test”] } }
  • 常用命令:
    • 运行全部质量检查:composer quality
    • 仅风格检查/自动修复:composer phpcs;composer phpcbf
    • 静态分析:composer phpstan
    • 复杂度与潜在问题:composer phpmd
    • 运行测试:composer test
  • 说明:上述命令依赖各工具已作为 –dev 安装;脚本支持组合、传参与配置文件路径,便于本地与 CI 复用。

四 提交前自动检查与 IDE 联动

  • Git 提交前自动检查(阻止不合规代码入库):
    • 方式一:使用 Composer 事件脚本
      • 在 composer.json 添加:“scripts”: { “pre-commit”: “@qa” }
      • 在 .git/hooks/pre-commit 写入:exec composer run-script pre-commit
    • 方式二:手写钩子脚本(示例仅做 phpcs 校验) #!/usr/bin/env bash FILES=$(git diff --cached --name-only --diff-filter=ACMR | grep ‘.php$’) [[ -z “$FILES” ]] && exit 0 for f in $FILES; do vendor/bin/phpcs --standard=phpcs.xml “$f” || { echo “phpcs failed: $f”; exit 1; } done exit 0
  • PHPStorm 联动(便于实时代码检查与一键执行):
    • 配置 phpcs/phpmd/PHPStan:File > Settings > Languages & Frameworks > PHP > Code Sniffer / Quality Tools > PHP Mess Detector / PHPStan,选择对应可执行文件路径(如 vendor/bin/phpcsvendor/bin/phpmdvendor/bin/phpstan),并启用相应 Inspections。
    • 在 Editor > Inspections 勾选 PHP Code Sniffer Validation,选择 PSR12 等规范,即可在编辑器中实时标记风格问题。

五 CI/CD 集成示例

  • GitHub Actions(每次推送自动运行质量检查与测试): name: PHP Quality & Tests on: [push] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: ‘8.1’ extensions: mbstring, intl - name: Install dependencies run: composer install --no-interaction --no-progress --optimize-autoloader - name: Run PHPStan run: composer phpstan - name: Run PHP_CodeSniffer run: composer phpcs - name: Run PHPMD run: composer phpmd - name: Run Tests run: composer test
  • 说明:将脚本命令与配置纳入仓库,确保 CI 与本地一致,持续保障代码质量。

0