通过使用PHP_CodeSniffer,获得最强大的PHP代码格式化

简单来说;简而言之;总之

    • PHPで書かれたコードのコーディング規約にPSR-12を適用して開発してるよ!

 

    • エディタの整形ルールの設定が漏れてて、気づいたら全然触ってないところまで整形されてdiffが読みづれえ…

 

    • コード整形のルールをレポジトリ内に入れてPHP_CodeSnifferのコマンドで一発で整形できるようにした!

 

    IDE(PhpStorm)からもPHP_CodeSnifferを使うようにした

PHP_CodeSniffer是什么?

PHP_CodeSniffer是一种静态分析工具,它可以进行符合编码规范(如PSR-12)的语法检查并自动修复违规情况。

squidslabs/php_codesniffer

当您安装composer和PHP_CodeSniffer之后,您可以使用phpcs和phpcbf命令来检查违规和进行代码格式化。

安装并设置规则

composer require --dev squizlabs/php_codesniffer

完成安装后,将以下 scripts 添加到 composer.json 中,以便轻松执行。

{
  "scripts": {
    "phpcs": "phpcs --standard=phpcs.xml",
    "phpcbf": "phpcbf --standard=phpcs.xml"
  }
}
<?xml version="1.0"?>
<ruleset name="example">
    <arg value="p"/>
    <arg name="colors"/>
    <arg value="s"/>
    <!-- PSR12 Standard -->
    <rule ref="PSR12"/>
    <!-- src/ と test/ を検査する -->
    <file>src/</file>
    <file>test/</file>
</ruleset>

根据项目的组成,将设置放入phpcs.xml。本次使用了PSR12规范,但还有其他可用的编码规范,因此请根据项目选择适合的规范进行设置。

试着整容

因为在这次的composer.json文件的scripts部分定义了两个命令phpcs和phpcbf,所以让我们尝试执行以下命令来检查代码是否有违规行为。

$ composer phpcs
> phpcs --standard=phpcs.xml
..E.................................... 39 / 39 (100%)

FILE: /work/code/src/DI/Container.php
-------------------------------------------------------------------------------------------------------------------
FOUND 3 ERRORS AFFECTING 3 LINES
-------------------------------------------------------------------------------------------------------------------
 1 | ERROR | [x] Header blocks must be separated by a single blank line
   |       |     (PSR12.Files.FileHeader.SpacingAfterBlock)
 2 | ERROR | [x] Header blocks must be separated by a single blank line
   |       |     (PSR12.Files.FileHeader.SpacingAfterBlock)
 3 | ERROR | [x] Header blocks must be separated by a single blank line
   |       |     (PSR12.Files.FileHeader.SpacingAfterBlock)
-------------------------------------------------------------------------------------------------------------------
PHPCBF CAN FIX THE 3 MARKED SNIFF VIOLATIONS AUTOMATICALLY
-------------------------------------------------------------------------------------------------------------------

Time: 235ms; Memory: 8MB

如果有违反行为,它将显示违反发生的位置。

此外,即使出现了违规行为,也可以轻松地通过phpcbf进行修复。

$ composer phpcbf
> phpcbf --standard=phpcs.xml
..F.................................... 39 / 39 (100%)

PHPCBF RESULT SUMMARY
----------------------------------------------------------------------
FILE                                                  FIXED  REMAINING
----------------------------------------------------------------------
/work/code/src/DI/Container.php                       3      0
----------------------------------------------------------------------
A TOTAL OF 3 ERRORS WERE FIXED IN 1 FILE
----------------------------------------------------------------------

Time: 272ms; Memory: 8MB

真方便啊。

将其配置以便可以在PhpStorm中使用。

PhpStorm中已经内置了对PHP_CodeSniffer的支持,所以只需进行几项配置即可使用。

PHP_CodeSniffer是一个用于静态代码分析和自动代码格式化的工具。它可以帮助程序员在编写代码时保持一致的编码风格,并提供准确的代码规范性检查。 PhpStorm是一个集成开发环境,可以与PHP_CodeSniffer无缝集成,使开发人员可以轻松地进行代码审查和纠正,并提高代码质量。

只要按照步骤进行设置,JetBrains官方日文版手册中已经详细列出了所有设置方法,您可以轻松进行设置。

通过进行设置,可以在编辑器上确认错误,并且还可以直接在PhpStorm中修复显示的错误,所以请务必进行设置!

广告
将在 10 秒后关闭
bannerAds