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操作工作流程,以自动将我的项目推入目录。