olivertappin/phpcs-diff

此软件包最新版本(2.0.1)没有可用的许可信息。

基于git diff检测定义的编码标准违规。

2.0.1 2023-01-06 10:58 UTC

This package is auto-updated.

Last update: 2024-09-06 14:43:44 UTC


README

Latest Version Software License Build Status Quality Score GitHub issues Total Downloads

安装

建议使用Composer来安装此库。

Composer

全局安装

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

composer global require olivertappin/phpcs-diff

手动安装

或者,您可以在您的composer.json文件中手动添加olivertappin/phpcs-diff的依赖项。例如

{
    "require-dev": {
        "olivertappin/phpcs-diff": "^2.0"
    }
}

然后运行composer update olivertappin/phpcs-diff

Git Clone

您还可以下载phpcs-diff源代码,并将其创建为对/usr/bin目录的符号链接

git clone https://github.com/olivertappin/phpcs-diff.git
ln -s phpcs-diff/bin/phpcs-diff /usr/bin/phpcs-diff
cd /var/www/project
phpcs-diff master -v

用法

基本用法

phpcs-diff <current-branch> <base-branch> -v

假设您当前所在的分支是您要比较的分支,而develop是基础分支。在这个例子中,phpcs-diff会在后台运行以下diff语句

git diff my-current-branch develop

请注意

  • -v标志是可选的。这将在处理过程中返回详细输出。
  • current-branch参数是可选的。如果未定义,则phpcs-diff将使用git rev-parse --verify HEAD通过当前提交哈希值。
  • 您必须在项目基本目录中定义一个ruleset.xml

运行phpcs-diff后,可执行文件将返回类似以下输出的结果

########## START OF PHPCS CHECK ##########
module/Poject/src/Console/Script.php
 - Line 28 (WARNING) Line exceeds 120 characters; contains 190 characters
 - Line 317 (ERROR) Blank line found at end of control structure
########### END OF PHPCS CHECK ###########

目前这是唯一支持的格式,但我将研究在未来添加更多格式(类似于phpcs)。

Travis CI 使用

要将其用作CI/CD流水线的一部分,创建一个包含以下内容的脚本

#!/bin/bash
set -e
if [ ! -z "$TRAVIS_PULL_REQUEST_BRANCH" ]; then
  git fetch `git config --get remote.origin.url` $TRAVIS_BRANCH\:refs/remotes/origin/$TRAVIS_BRANCH;
  composer global require olivertappin/phpcs-diff;
  ~/.composer/vendor/bin/phpcs-diff $TRAVIS_BRANCH;
else
  echo "This test does not derive from a pull-request."
  echo "Unable to run phpcs-diff (as there's no diff)."

  # Here you might consider running phpcs instead:
  # composer global require squizlabs/php_codesniffer;
  # ~/.composer/vendor/bin/phpcs .
fi;

这将允许您运行phpcs-diff来与您的pull-request的diff进行比较。

以下是如何在Travis CI中使用它的示例

Travis CI Example

关于

phpcs-diff基于git diff检测定义的一组编码标准违规。它使用来自PHP_CodeSniffer项目的phpcs

此项目有助于实现以下目标

  • 加速您的CI/CD流水线,仅验证更改文件而不是整个代码库。
  • 允许您将无法一次更改全部的遗留代码库迁移到完全符合编码标准。

此可执行文件通过仅检查与基础分支相比的更改行,与所有失败的违规行为进行检查,因此您可以确信任何新或更改的代码都符合标准。

这有望使您的代码库随着时间的推移而变得更加符合该编码标准,也许您最终会发现资源来更改所有内容,并且只需运行phpcs即可。

要求

phpcs-diff的最新版本需要PHP版本5.6.0或更高版本。

此项目还依赖于squizlabs/php_codesniffer,它用于内部通过phpcs获取失败的违规行为。

最后,还安装了league/climate软件包。这是为了处理控制台输出,但这个依赖可能在未来的版本中被删除。

贡献

有关信息,请参阅CONTRIBUTING.md