jrfnl/qawpprojects

一套PHP Codesniffer标准,可用于检查WordPress项目的代码质量。

资助包维护!
jrfnl
paypal.me/jrfnl

安装次数: 36

依赖项: 0

建议者: 0

安全性: 0

星标: 18

关注者: 7

分支: 2

开放问题: 0

类型:phpcodesniffer-standard

1.0.1 2020-01-19 17:56 UTC

This package is auto-updated.

Last update: 2024-09-21 09:46:30 UTC


README

Build Status

介绍

该项目最初是为了作为如何使用各种PHPCS规则和标准来评估WordPress插件和主题代码质量的演讲示例/概念证明而创建的。

作为次要用例,该项目可以一次性安装所有相关的WordPress相关PHP_CodeSniffer规则集。

注意:此存储库将不会积极维护。

演讲

展示此存储库的演示文稿

安装

要求

特定项目的安装

关于基于项目的安装

使用此方法,工具将仅对特定项目可用。

优点:使用基于项目的安装,您可以记录项目使用的工具,并使其他项目贡献者安装这些工具变得容易。

缺点:对于每个额外的项目,您都需要重新进行安装。

从项目根目录运行以下命令

composer require --dev jrfnl/qawpprojects

现在PHP_CodeSniffer命令将从项目根目录作为vendor/bin/phpcs可用。

要从项目根目录更新安装,请运行以下命令

composer update jrfnl/qawpprojects --with-dependencies

全局安装

关于全局安装

使用此方法,工具将在您的系统上的任何位置可用。

优点:您只需安装一次。

缺点:如果您为项目使用工具,并且项目对其他贡献者开放,则不清楚您希望他们使用哪些工具。

从系统上的任何位置运行以下命令

composer global require --dev jrfnl/qawpprojects

请确保Composer "home" vendor/bin 目录位于您的系统路径中。要查找Composer "home"目录,请运行composer config --list --global并查看home下列出的内容。将此目录添加到/vendor/bin并确保它位于操作系统的$PATH变量中。

现在PHP_CodeSniffer命令将在您的计算机上的任何位置作为phpcs可用。

要从系统上的任何位置更新安装,请运行以下命令

composer global update jrfnl/qawpprojects --with-dependencies

验证安装成功

安装完成后,运行以下命令以验证安装是否成功

# For a project based install:
vendor/bin/phpcs -i

# For a global install:
phpcs -i

输出应如下所示

The installed coding standards are MySource, PEAR, PSR1, PSR12, PSR2, Squiz, Zend, WP-QA-Basic, WP-QA-Strict,
PHPCompatibility, PHPCompatibilityParagonieRandomCompat, PHPCompatibilityParagonieSodiumCompat, PHPCompatibilityWP,
WordPress, WordPress-Core, WordPress-Docs, WordPress-Extra and WPThemeReview

使用已安装的规则集

安装后,您可以为您的项目使用上述列出的任何PHPCS规则集,或它们的组合。

  • WordPress-Core根据WordPress PHP编码标准手册中描述的代码风格和最佳实践指南检查代码。
  • WordPress-Docs根据WordPress PHP文档标准手册中描述的指南检查代码文档。
  • WordPress-ExtraWordPress-Core 的扩展,包括对通用最佳实践和WordPress特定最佳实践的额外检查,适用于代码的一般性以及WordPress特定的最佳实践。
  • WordPress 是上述三个规则集的组合。

对于插件和主题,建议使用 WordPressWordPress-Extra

  • PHPCompatibilityWP 检查代码的PHP跨版本兼容性,同时防止WordPress自身中polyfilled的PHP特性产生误报。这是推荐用于WordPress项目的PHPCompatibility规则集。列出的其他PHPCompatibility规则集包含在这个规则集中。

  • WPThemeReview 专门用于WordPress主题,并检查代码是否符合主题手册中描述的wp.org主题存储库提交指南。

强烈建议记录你使用的自定义规则集中的设置,并添加一些基本的嗅探器配置以获得最佳结果。

一个示例规则集,你可以将其放置在你的项目的根目录中,包括关于你应该调整的内容的文档,可以在sample-project-ruleset目录中找到。

审查WordPress插件和主题

这个存储库包含两个本地规则集 - WP-QA-BasicWP-QA-Strict - 专门用于在不了解代码的情况下审查WordPress插件和主题。

这些规则集不考虑代码风格的一致性。它们将仅评估代码是否得到良好记录、测试,以及是否存在代码质量问题。

当你运行这些规则集之一对项目进行审查时,将显示一个定制的报告,以给你一个项目代码质量的直观感受

运行工具之前

要使用此工具审查WordPress插件和主题,工具需要一些关于你想要审查的插件/主题的信息。

  • 下载插件/主题并将其解压缩。
  • 咨询你的网络主机,了解你想要使用插件/主题的网站正在运行哪个版本的PHP。
  • 在插件/主题目录的根目录中打开readme.txt文件,并检查插件/主题的最低支持WP版本
  • 打开插件主文件或主题的functions.php文件,并检查它是否有Text Domain: my-plugin标题。如果有,记录下文本域。如果没有,使用插件/主题的slug。
  • “猜测”插件/主题将使用的前缀。通常这是插件/主题的slug或基于slug的缩写。例如,对于bbPress,前缀可能是(并且是):bbp

如何运行?

像这样从项目根目录运行工具(基于全局安装的命令)

phpcs . --standard=WP-QA-Basic --basepath=./ --runtime-set testVersion 5.6- --runtime-set minimum_supported_wp_version 4.5 --runtime-set prefixes plugin_prefix,plugin_acronym --ignore=*/node-modules/* --runtime-set text_domain plugin-slug

⚠️ 替换命令中查到的各种值。

输出将类似于以下内容

WORDPRESS PROJECT QA REPORT
====================================================================================================
This report highlights potential problem areas in the scanned code.
It is advisable to let an experienced developer assess whether the highlighted issues are actually
problematic.
This report is intended solely as soft advise, not as a hard judgement.
----------------------------------------------------------------------------------------------------

====================================================================================================
GENERAL INFORMATION ABOUT THE ANALYSED CODE BASE.
====================================================================================================

File Type |  Files  |     Lines *  |        Code         |       Comments
------------------------------------------------------------------------------
plugin    |     272 |        90640 |       57752 (63.7%) |       33160 (36.6%)
test      |      31 |          202 |         174 (86.1%) |          59 (29.2%)
vendor    |       0 |            0 |                     |
==============================================================================
Totals    |     303 |        90842 |       57926 (63.8%) |       33219 (36.6%)

* These stats exclude all blank lines.

====================================================================================================
ISSUES FOUND PER CATEGORY *
====================================================================================================
PLUGIN FILES                 | Errors   | % of LOC | Warnings | % of LOC
------------------------------------------------------------------------
hard errors                  |        1 |    0.00% |    -     |
dangerous code               |        2 |    0.00% |    -     |
untestable code              |       32 |    0.04% |       55 |    0.06%
outdated code                |    -     |          |        3 |    0.00%
messy code                   |    -     |          |       32 |    0.04%
incompatible code - PHP      |       75 |    0.08% |        2 |    0.00%
incompatible code - WP       |    -     |          |    -     |
potentially conflicting code |      173 |    0.19% |       24 |    0.03%
========================================================================
Total                        |      283 |    0.31% |      116 |    0.13%

TEST FILES                   | Errors   | % of LOC | Warnings | % of LOC
------------------------------------------------------------------------
hard errors                  |    -     |          |    -     |
dangerous code               |    -     |          |    -     |
untestable code              |    -     |          |    -     |
outdated code                |    -     |          |    -     |
messy code                   |    -     |          |    -     |
incompatible code - PHP      |    -     |          |        1 |    0.50%
incompatible code - WP       |    -     |          |    -     |
potentially conflicting code |        9 |    4.46% |    -     |
========================================================================
Total                        |        9 |    4.46% |        1 |    0.50%
----------------------------------------------------------------------------------------------------

💡 小贴士

使用自定义规则集而不是这个长命令。查看sample-project-ruleset以获取起点,并在“设置规则”部分将<rule ref="WordPress"/>替换为你想要使用的WP-QA规则集。

一旦设置了自定义规则集,命令就简单变为

vendor/bin/phpcs

如何解释结果?

如果您对生成的报告感到困惑,我建议您观看在WordCamp Rotterdam上的演讲视频 视频,以了解如何解读结果。

许可协议

此代码在MIT许可证下发布。