otgs/phpcs-diff

dev-master 2023-01-24 10:31 UTC

This package is auto-updated.

Last update: 2024-09-24 14:06:13 UTC


README

本项目的目的是提供一个在版本控制系统存储的文件上运行PHP CodeSniffer(即PHPCS)检查的方法,并报告仅在特定修订版中引入的问题。

phpcs-diff demonstration

仅报告特定修订版的新问题,在PHPCS在开发周期后期引入且没有资源清理所有现有问题时可能很重要。

安装和使用该工具的方法有多种。

独立

您可以从命令行运行 phpcs-diff 而无需其他要求,只需要 PHP 和 Composer。

安装

git clone https://github.com/zaantar/phpcs-diff.git phpcs-diff
cd phpcs-diff
composer install --no-dev

使用

从您要检查的 git 仓库目录中运行脚本。

../phpcs-diff/bin/phpcs-diff [options]

功能选项

  • --start_revision=<arg>:第一个(较旧的)修订号/提交哈希。

  • --end_revision=<arg>:第二个(较新的)修订号/提交哈希。如果未提供此参数,将使用工作目录中的未提交更改。

  • --tolerance[=<arg>]:将容忍的最后一级问题。接受值为 blockers | warnings | notes | none。

  • --standard[=<arg>]:要使用的 phpcs 标准的名称,例如:WordPress、WordPress-VIP、WordPress-Core、WordPress-Docs、WordPress-Extra、VariableAnalysis 或 Toolset。它也可以是配置文件的路径,例如 ./phpcsdiff.xml

    如果您省略此参数,将使用默认配置文件。

  • --sniff_unstaged:检查工作目录中的未提交更改与最新提交(HEAD)的对比。在此情况下,将忽略 --start_revision--end_revision

输出选项

  • --log_level[=<arg>]:通过传递从 0(最详细)到 2(最不详细,仅错误)的数字来控制详细程度。

  • --ignore_space_changes:当使用 git 生成 diff 时,将忽略空白更改。

  • --no_colours:打印问题列表时不使用彩色输出。

  • --colourt_primary=<arg>--colour_secondary=<arg>:指定问题列表的主要和次要颜色。 接受值

    默认,黑色,红色,绿色,黄色,蓝色,品红色,青色,亮灰色,暗灰色,亮红色,亮绿色,亮黄色,亮蓝色,亮品红色,亮青色,白色

    如果使用 --no_colours,则忽略这些参数。

限制

  • 不支持 Subversion。
  • 只能用于当前目录中的 git 仓库。

输出

脚本将打印找到的问题,如果发生任何未忽略的当前容忍级别的问题,则设置退出代码。

作为 wp-cli 命令

此仓库也是一个 WordPress 插件,当激活时,提供了一个 WP-CLI 命令 phpcs-diff

先决条件

除了一个正常工作的 WordPress 安装外,您还需要安装 WP CLI,因为您只能通过 WP CLI 与插件交互。

安装

  1. 将此存储库检查到您的插件目录。
  2. 在存储库根目录中运行 composer install --no-dev
  3. 通过标准的WordPress管理界面激活插件。

使用

示例命令运行

wp phpcs-diff --vcs="svn" --repo="hello-dolly" --start_revision=99998 --end_revision=100000

有关命令的更多参数,请运行 wp help phpcs-diff直接查看内联文档

配置

PHPCS

如果运行PHPCS命令的默认值与您的环境不匹配(见 https://github.com/Automattic/phpcs-diff/blob/master/class-phpcs-diff.php#L5 ),您需要通过位于WordPress安装的wp-config.php中的常量来覆盖这些值

define( 'PHPCS_DIFF_COMMAND', 'phpcs' );
define( 'PHPCS_DIFF_STANDARDS', 'path/to/phpcs/standards' );

SVN

最初,此工具仅与Subversion一起工作,但该功能现在已经相对边缘化。请报告您缺少的SVN功能或错误。

注意:除此之外,您还需要提供插件SVN凭据。这可以通过将以下常量放入WordPress安装的wp-config.php文件中完成

define( 'PHPCS_DIFF_SVN_USERNAME', 'my_svn_username' );
define( 'PHPCS_DIFF_SVN_PASSWORD', 'my_svn_password' );