通过Composer集成代码质量工具可统一版本管理和团队协作,并便于CI/CD集成。首先选择PHPStan、Psalm、PHP_CodeSniffer、PHPMD、ECS等工具,使用composer require –dev安装。接着创建对应配置文件:phpstan.neon、phpcs.xml、phpmd.xml、.php-cs-fixer.dist.php,定义分析规则、代码风格和检查路径。然后在composer.json中添加scripts,如”phpstan”: “phpstan analyse”等,方便调用。最后将这些命令写入CI/CD流程(如GitHub Actions),在每次提交时自动执行检查。自定义代码风格可通过修改phpcs.xml继承或调整规则实现;报错需根据提示修复问题,若为误报可在配置中谨慎忽略。

Composer 添加代码质量工具,本质上就是通过 Composer 管理代码质量工具的依赖,并配置相应的执行脚本,让这些工具能够集成到你的项目中。这样做的好处是版本控制统一,方便团队协作,也能更容易地在 CI/CD 流程中执行代码质量检查。
首先,你需要选择合适的代码质量工具。常见的 PHP 代码质量工具包括:
- PHPStan: 静态分析工具,可以发现代码中的潜在错误。
- Psalm: 另一个静态分析工具,功能类似 PHPStan。
- PHP_CodeSniffer: 检查代码风格是否符合 PSR 标准或其他自定义标准。
- PHPMD: 检测代码中的潜在问题,如过度复杂的方法、未使用的代码等。
- EasyCodingStandard (ECS): 基于 PHP_CodeSniffer 和 PHP-CS-Fixer 的工具,可以自动修复代码风格问题。
接下来,使用 Composer 安装这些工具。
composer require --dev phpstan/phpstan composer require --dev squizlabs/php_codesniffer composer require --dev phpmd/phpmd composer require --dev friendsofphp/php-cs-fixer
安装完成后,你需要配置这些工具。
PHPStan 配置:
在项目根目录下创建
phpstan.neon
文件,配置 PHPStan 的分析级别和要分析的文件目录。
parameters: level: 5 paths: - src - tests
PHP_CodeSniffer 配置:
创建
phpcs.xml
文件,配置代码风格标准。
<?xml version="1.0"?> <ruleset name="MyProject"> <description>My project coding standard</description> <rule ref="PSR12"/> </ruleset>
PHPMD 配置:
创建
phpmd.xml
文件,配置要使用的规则集。
<?xml version="1.0"?> <ruleset xmlns="http://pmd.sourceforge.net/ruleset/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="My Project Ruleset" xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/xsd/ruleset_2_0_0.xsd"> <description> My custom ruleset. </description> <rule ref="rulesets/codesize.xml"/> <rule ref="rulesets/unusedcode.xml"/> <!-- Add other rulesets as needed --> </ruleset>
PHP-CS-Fixer 配置:
创建
.php-cs-fixer.dist.php
文件,配置代码风格修复规则。
<?php use PhpCsFixerConfig; use PhpCsFixerFinder; $finder = Finder::create() ->in(__DIR__ . '/src') ->in(__DIR__ . '/tests'); $config = new Config(); return $config->setRules([ '@PSR12' => true, 'strict_param' => true, 'array_syntax' => ['syntax' => 'short'], ]) ->setFinder($finder);
最后,在
composer.json
文件中添加 scripts,方便执行这些工具。
{ "scripts": { "phpstan": "phpstan analyse", "phpcs": "phpcs", "phpmd": "phpmd src text phpmd.xml", "phpcbf": "phpcbf", "php-cs-fixer": "php-cs-fixer fix" } }
现在,你可以使用
composer phpstan
,
composer phpcs
,
composer phpmd
,
composer phpcbf
,
composer php-cs-fixer
命令来执行相应的代码质量检查和修复。
如何在 CI/CD 流程中集成这些代码质量工具?
将这些命令添加到你的 CI/CD 配置文件中。例如,如果使用 GitHub Actions,可以在
.github/workflows/main.yml
文件中添加以下步骤:
jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - 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 --no-scripts - name: Run PHPStan run: composer phpstan - name: Run PHP_CodeSniffer run: composer phpcs - name: Run PHPMD run: composer phpmd
这样,每次提交代码时,CI/CD 流程都会自动执行代码质量检查,并报告结果。
如何自定义代码风格标准?
自定义代码风格标准,需要修改
phpcs.xml
文件。你可以选择继承现有的标准,然后添加或修改规则。例如,你可以继承 PSR12 标准,然后禁用某些规则:
<?xml version="1.0"?> <ruleset name="MyProject"> <description>My project coding standard</description> <rule ref="PSR12"/> <rule ref="Generic.Arrays.DisallowLongArraySyntax"> <severity>0</severity> </rule> </ruleset>
在这个例子中,我们禁用了
Generic.Arrays.DisallowLongArraySyntax
规则,允许使用长数组语法。
另外,你也可以完全自定义一套代码风格标准,但这需要花费更多的时间和精力。
如何处理代码质量工具的报错?
代码质量工具的报错通常意味着代码中存在问题。你需要仔细阅读报错信息,找到问题所在,并进行修复。
- PHPStan 和 Psalm 的报错: 通常是类型错误、未定义的变量、未使用的变量等。
- PHP_CodeSniffer 的报错: 通常是代码风格不符合标准。
- PHPMD 的报错: 通常是代码过于复杂、存在潜在的性能问题等。
修复这些报错可以提高代码质量,减少潜在的 bug。如果某些报错是误报,你可以通过配置文件忽略这些报错。例如,在 PHPStan 中,可以使用
ignoreErrors
参数来忽略某些报错。
parameters: level: 5 paths: - src - tests ignoreErrors: - '#Access to an undefined property#'
注意,忽略报错应该谨慎,只有在确认是误报的情况下才应该这样做。
以上就是composer php js git json github access ubuntu 工具 ai php composer json require xml 继承 Generic github bug


