composer如何给项目添加代码质量工具

26次阅读

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

composer如何给项目添加代码质量工具

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

文件,配置代码风格修复规则。

composer如何给项目添加代码质量工具

Opus

ai生成视频工具

composer如何给项目添加代码质量工具33

查看详情 composer如何给项目添加代码质量工具

<?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

composer php js git json github access ubuntu 工具 ai php composer json require xml 继承 Generic github bug

text=ZqhQzanResources