php-parallel-lint/php-parallel-lint

此工具检查 PHP 文件的语法,比串行检查快约 20 倍。

v1.4.0 2024-03-27 12:14 UTC

README

Downloads this Month Build Status License

此应用程序并行检查 PHP 文件的语法。它可以输出纯文本、带颜色的文本、json 和 checksyntax 格式。此外,还可以使用 blame 来显示引入错误提交的 commits。

在 PHP 中运行并行作业受到 Nette 框架测试的启发。

此应用程序官方支持与 PHP 5.3 到 8.3 一起使用。

目录

  1. 安装
  2. 示例输出
  3. 历史
  4. 命令行选项
  5. 对于 Symfony 框架推荐排除的内容
  6. 基于使用的 PHP 版本排除扫描文件
  7. 如何升级

安装

使用 composer 作为开发依赖项进行安装

composer require --dev php-parallel-lint/php-parallel-lint

或者您可以将其作为独立的 composer 项目进行安装

composer create-project php-parallel-lint/php-parallel-lint /path/to/folder/php-parallel-lint --no-dev
/path/to/folder/php-parallel-lint/parallel-lint # running tool

为了彩色输出,安装建议的包 php-parallel-lint/php-console-highlighter

composer require --dev php-parallel-lint/php-console-highlighter

从 v1.3.0 版本开始,每个版本都提供了一个 PHAR 文件。这个 PHAR 文件作为每个版本的资产发布,可以在 发行版 页面上找到。

示例输出

Example use of tool with error

历史

该项目最初由 @JakubOnderka 创建并发布为 jakub-onderka/php-parallel-lint

从那时起,Jakub 已经转向了其他兴趣,截至 2020 年 1 月,第二活跃的维护者 @grogy 接管了项目的维护,并在 PHP Parallel Lint 组织中为该项目 - 以及相关的依赖项 - 提供了新的家园。

强烈建议现有的 (未维护的) jakub-onderka/php-parallel-lint 包的用户将他们的依赖项切换到 php-parallel-lint/php-parallel-lint,请参阅下面的 如何升级

命令行选项

  • -p <php> 指定要运行的 PHP-CGI 可执行文件 (默认: 'php')。
  • -s--short 将 short_open_tag 设置为 On (默认: Off)。
  • -a--asp 将 asp_tags 设置为 On (默认: Off)。
  • -e <ext> 只检查具有选定扩展名的文件,用逗号分隔。 (默认: php,php3,php4,php5,phtml,phpt)
  • -j <num> 并行运行作业 (默认: 10)。
  • --exclude 排除文件或目录。如果想要排除多个项目,请使用多个排除参数。
  • --colors 在控制台输出中启用颜色。 (禁用颜色支持自动检测)
  • --no-colors 在控制台输出中禁用颜色。
  • --no-progress 在控制台输出中禁用进度。
  • --checkstyle 以 Checkstyle XML 格式输出结果。
  • --json 以 JSON 字符串格式输出结果(需要 PHP 5.4)。
  • --gitlab 为 GitLab 代码质量小部件输出结果(需要 PHP 5.4),有关更多信息请参阅 代码质量 文档。
  • --blame 尝试显示错误行的 git blame。
  • --git <git> 显示 blame 消息的 Git 可执行文件路径(默认: 'git')。
  • --stdin 从标准输入加载要测试的文件和文件夹。
  • --ignore-fails 忽略失败的测试。
  • --show-deprecated 显示弃用信息(默认:关闭)。
  • --syntax-error-callback 包含语法错误回调的文件,以便修改错误,更多信息请参阅示例
  • -h--help 打印此帮助信息。
  • -V--version 显示应用程序版本。

对于 Symfony 框架推荐排除的内容

从命令行运行

vendor/bin/parallel-lint --exclude .git --exclude app --exclude vendor .

基于使用的 PHP 版本排除扫描文件

有时项目中的一个特定文件可能不符合项目全局最低PHP版本,例如,一个条件包含在项目中的文件,其中包含需要更高PHP版本才能运行的PHP语法。

这可能会使得在CI环境中运行Parallel Lint变得复杂,因为命令中使用的exclude必须根据正在运行的PHP版本进行调整。

PHP Parallel Lint提供了一种直接解决此问题的方法,因为文件可以定义自己的最低PHP版本,如下所示

<?php // lint >= 7.4

// Code which contains PHP 7.4 syntax.

放置此注释后,当在低于PHP 7.4的PHP版本上运行PHP Parallel Lint时,该文件将自动跳过。

注意:注释// lint >= 7.4必须是文件的唯一第一行,并且必须直接跟在PHP开放标签之后。

如何升级

您正在使用jakub-onderka/php-parallel-lint包吗?您可以使用以下命令切换到php-parallel-lint/php-parallel-lint

composer remove --dev jakub-onderka/php-parallel-lint
composer require --dev php-parallel-lint/php-parallel-lint