lipemat / wp-phpcs
WordPress 插件的 PHP Codesniffer
Requires
- php: >=7.4.0
- automattic/vipwpcs: ^3.0.1
- dealerdirect/phpcodesniffer-composer-installer: ^0.7.1
- phpcompatibility/phpcompatibility-wp: ^2.1.2
- phpcsstandards/phpcsextra: ^1.0.2
- sirbrillig/phpcs-variable-analysis: ^v2.11.17
- squizlabs/php_codesniffer: ^3.6.1
- wp-coding-standards/wpcs: ^3.0.0
Requires (Dev)
- ext-json: *
- johnbillion/args: ^1
- lipemat/wordpress-libs: ^4
- phpcompatibility/php-compatibility: dev-develop as 9.4.0
- roave/security-advisories: dev-latest
- dev-master
- 4.4.0
- 4.3.2
- 4.3.1
- 4.3.0
- 4.2.0
- 4.1.4
- 4.1.3
- 4.1.2
- 4.1.1
- 4.1.0
- 4.0.0
- 3.2.0
- 3.1.4
- 3.1.3
- 3.1.2
- 3.1.1
- 3.1.0
- 3.0.2
- 3.0.1
- 3.0.0
- 3.0.0-beta.1
- 2.8.0
- 2.7.0
- 2.7.0-beta.1
- 2.6.5
- 2.6.4
- 2.6.3
- 2.6.2
- 2.6.1
- 2.6.0
- 2.5.0
- 2.4.0
- 2.3.0
- 2.2.1
- v2.2.0
- 2.1.0
- 2.0.1
- 2.0.0
- 1.4.0
- 1.3.1
- 1.3.0
- 1.2.0
- 1.1.1
- 1.1.0
- 1.0.0
- dev-develop
- dev-patch-1
This package is auto-updated.
Last update: 2024-09-02 16:25:39 UTC
README
WordPress 插件的 PHP Codesniffer 设置。
安装
使用 composer 进行安装。虽然这可以直接添加到您的 plugins composer.json 中,但建议全局安装以便在多个项目中重用。
如果不作为全局库使用,您的本地 composer.json
需要包含以下配置。
{ "config": { "allow-plugins": { "dealerdirect/phpcodesniffer-composer-installer": true } } }
通过 composer 安装
composer require lipemat/wp-phpcs
将 phpcs-sample.xml
文件复制到插件的根目录,并将其重命名为 phpcs.xml
。根据需要调整配置。
运行
vendor/bin 目录包含在 Windows 或 Unix 上运行的脚本。您可以将该目录添加到您的 PATH 中,或者像这样详细调用它
{project dir}/vendor/bin/phpcs ./
或者
{project dir}/vendor/bin/phpcbf ./
您也可以在您的 PATH 上的某个位置创建自己的脚本。以下是一个 Windows 的示例 phpcs.bat。这假设您在根目录中创建了一个名为 wp-phpcs 的文件夹,并在那里运行了 composer require。
@echo off
C:\wp-phpcs\vendor\bin\phpcs %*
自动化
一旦您已将 phpcs 和 phpcbf 的脚本添加到您的 PATH 中,您可以使用包含的 git-hooks/pre-commit
在提交之前自动运行 PHP lint 和 PHPCS。
将 pre-commit 文件复制到您的插件的 .git/hooks 目录,其余的将自动完成。
包含的 Sniffs
Lipe Sniffs
此包附带一些 可选的 Lipe
命名空间 sniffs。
<rule ref="Lipe" />
用于所有默认配置和 sniffs。- @note 此配置具有主观性,您可能只想包含所需的 sniffs 命名空间。
<rule ref="Lipe.JS" />
用于我们的 JavaScript 安全 sniffs,支持 dompurify。<rule ref="Lipe.DB.CalcFoundRows" />
用于检测 MySQLSQL_CALC_FOUND_ROWS
的弃用用法。<rule ref="Lipe.PHP.DisallowNullCoalesceInCondition" />
用于检测在条件中使用??
。<rule ref="Lipe.PHP.DisallowNullCoalesceInForLoops" />
用于检测在 for 循环中使用??
。<rule ref="Lipe.Performance.SlowMetaQuery" />
用于检测缓慢的 meta 查询。- 类似于
WordPress.DB.SlowDBQuery.slow_db_query_meta_query
,但支持使用EXISTS
和NOT_EXISTS
meta 查询。
- 类似于
<rule ref="Lipe.Performance.SlowOrderBy" />
用于检测 WP_Query 中的缓慢的ORDER BY
子句。<rule ref="Lipe.Performance.PostNotIn" />
用于检测 WP_Query 中的post__not_in
子句的使用。<rule ref="Lipe.Performance.SuppressFilters" />
用于检测在 get_posts 中缺少suppress_filters
子句的使用。
LipePlugin Sniffs
此包附带一些 可选的 LipePlugin
命名空间 sniffs,旨在与分布式插件或库一起使用。
<rule ref="LipePlugin" />
用于所有默认配置和 sniffs。- @note 此配置具有主观性,您可能只想包含所需的 sniffs 命名空间。
<rule ref="Lipe.CodeAnalysis.SelfInClassSniff" />
强制使用static
而不是self
以提高可扩展性。- 'ReturnType' - 方法的返回类型。
- 'InstanceOf' - 静态调用时的 self 实例。
- 'NewInstance' - 通过
new self()
构建。 - 'ScopeResolution' - 通过
self::
的本地常量。
<rule ref="LipePlugin.TypeHints.PrivateInClass" />
用于分布式包,不应使用private
以提高可扩展性。<rule ref="LipePlugin.TypeHints.PreventStrictTypes" />
用于分布式包,不应使用strict_type
以提高兼容性。
其他注意事项
phpcs-sample.xml
中排除了许多内容。这是因为一些内容实际上与 WordPress 标准不符。您可以删除任何 <exclude>
项以使代码更加严格。如果真的想要使代码非常严格,可以全部删除。