使用作曲家设置每个项目的WordPress编码标准
#php #wordpress #linting #phpcs

PHP代码嗅探器可帮助我们实现代码样式的统一性,我们还可以添加其他标准,例如WordPress编码Standars,一些公司定义了自己的标准等。

有几种方法可以进行配置,但是在本文中,我将通过作曲家管理WordPress Coding Standards,因此我们可以使用VS Code IDE来管理这些标准

要求

安装标准

我们需要安装PHP代码Sniffer和WordPress编码标准,因为在您的项目文件夹上运行以下命令:

composer require --dev squizlabs/php_codesniffer

composer require --dev wp-coding-standards/wpcs

如果您愿意,可以直接编辑 composer.json 添加以下行的文件:

"require-dev": {
    "squizlabs/php_codesniffer": "^3.7",
    "wp-coding-standards/wpcs": "^2.3",
}

这些文件将添加到您的供应商文件夹中,包括 wpcs 。如果您选择直接更新Composer.json文件,请记住运行composer update

要检查是否有效,请运行./vendor/bin/phpcs -i查看标准

第一次,预期的输出将为

安装的编码标准是Mysource,Pear,PSR1,PSR2,PSR12,Squiz和Zend

要使用WPC(或其他自定义标准),我们必须告诉WordPress编码标准的PHP代码嗅探器。为此运行命令:

./vendor/bin/phpcs --config-set installed_paths vendor/wp-coding-standards/wpcs

要确认其有效,请再次运行./vendor/bin/phpcs -i,并且这次的预期输出应为:

已安装的编码标准是MySource,Pear,PSR1,PSR2,PSR12,Sqriz,Sqriz,Zend,WordPress,WordPress,WordPress,WordPress-docs和WordPress-Extra

脚本

我在我的Project Composer.json中添加了一些脚本,以帮助我使用这些命令(以后在使用GitHub Actions创建 phpcs Workflow 时将很有用,但这是另一篇文章的主题)。

 "scripts": {
    "cs-packages": "./vendor/bin/phpcs -i",
    "cstd": "./vendor/bin/phpcs --config-set installed_paths vendor/wp-coding-standards/wpcs",
    "cs": "./vendor/bin/phpcs --standard="WordPress" --report=summary .",
    "cbf": "./vendor/bin/phpcbf --standard="WordPress ."
  },

VS代码扩展

对于VS代码“要了解标准”,我们需要一些扩展,我选择的是phpcs

扩展设置

根据phpcs扩展文档,创建了此设置。对于其他IDE或扩展程序,更改您必须相应地更改设置。

{
    "phpcs.enable": true,
    "phpcs.lintOnSave": true,
    "phpcs.showSources": false,
    "phpcs.standard": "WordPress",
    "phpcs.ignorePatterns": [
        "*/vendor/*"
    ],
}

用法

如果您正确安装了所有内容,因为设置上的"phpcs.lintOnSave": true,行。在保存上,任何PHP文件都可以正常工作,并且错误将在问题上显示。我们还可以在终端上运行以下命令以检查一个文件:

./vendor/bin/phpcbf --standard="WordPress" /file-name.php

在终端上显示报告:

./vendor/bin/phpcs --standard="WordPress" /file-name.php

我们还可以将命令运行到立即检查所有文件,但可能会根据您的项目规模而遇到性能问题,仔细使用,在某些情况下可能需要调整我们的php.ini指令,例如max_execution_time。

./vendor/bin/phpcbf --standard="WordPress" .

在终端上显示报告:

./vendor/bin/phpcs --standard="WordPress" .

很快,我将使用此composer.json来写下我的phpcs.yml github操作工作流程,以自动将我的项目推入目录。