aeliot/php-cs-fixer-baseline

v2.0.2 2024-09-07 10:45 UTC

This package is auto-updated.

Last update: 2024-09-24 19:38:37 UTC


README

GitHub Release WFS Code Climate maintainability GitHub Issues or Pull Requests GitHub License

这是 PHP CS Fixer 的简单基线。

优点

  • 它可以帮助您在准备整个项目之前开始使用 PHP CS Fixer。如果您不需要一开始就修复所有内容,只需关注每次迭代中的新更改和变更。
  • 它可能有助于加快大型项目的 CI 管道速度。

基础项目有要求但尚未实现:[PHP-CS-Fixer/PHP-CS-Fixer#6451](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6451)

因此,在基线被纳入 PHP CS Fixer 之前,这是一种权宜之计。

安装

有几种安装方式

  1. Phive
  2. Composer
  3. 直接下载 PHAR

Phive

您可以使用 Phive 安装此软件包。它允许您通过一条命令安装软件包,而无需扩展 composer 文件中的依赖项。

phive install php-cs-fixer-baseline

有时您可能需要更新 PHIVE 的软件包别名数据库。参见 问题 #3 因此,只需调用该控制台命令即可。

phive update-repository-list

使用以下命令升级此软件包

phive update php-cs-fixer-baseline

Composer

您可以使用 Composer 安装此软件包

composer require --dev aeliot/php-cs-fixer-baseline

直接下载 PHAR

直接将 PHAR 下载到项目的根目录或其他您希望的位置。

# Do adjust the URL if you need a release other than the latest
wget -O pcsf-baseline.phar "https://github.com/Aeliot-Tm/php-cs-fixer-baseline/releases/latest/download/pcsf-baseline.phar"
wget -O pcsf-baseline.phar.asc "https://github.com/Aeliot-Tm/php-cs-fixer-baseline/releases/latest/download/pcsf-baseline.phar.asc"

# Check that the signature matches
gpg --verify pcsf-baseline.phar.asc pcsf-baseline.phar

# Check the issuer (the ID can also be found from the previous command)
gpg --keyserver hkps://keys.openpgp.org --recv-keys 83F9945BC33EC39E9710206C8B4927076BA50A83

rm pcsf-baseline.phar.asc
chmod +x pcsf-baseline.phar

配置

  1. 从 PHP CS Fixer 的配置中提取 Finder 并将其放入单独的文件。它期望在项目的根目录中有 .php-cs-fixer-finder.php
  2. 添加由 Finder 检测到的文件的过滤。
    use Aeliot\PhpCsFixerBaseline\Service\FilterFactory;
    
    $finder->filter((new FilterFactory())->createFilter(__DIR__ . '/.php-cs-fixer-baseline.json', $config));
  3. 从 PHAR 中自动加载类(可选)。如果您将此项目作为 PHAR 文件使用,则需要要求它提供的自动加载器以使用提供的过滤器。在 PHP CS Fixer 的主配置文件(.php-cs-fixer.dist.php)中执行此操作。
    Phar::loadPhar('/path/to/pcsf-baseline.phar', 'pcsf-baseline.phar');
    require_once 'phar://pcsf-baseline.phar/vendor/autoload.php';

使用

  1. 生成基线。当所有配置文件使用默认名称时,只需调用脚本而不带任何选项。
    • 调用 PHAR
      php pcsf-baseline.phar
    • 或调用通过 Composer 安装的脚本
      vendor/bin/pcsf-baseline
    下面是它的选项。您可以看到在这个项目中是如何配置的。
  2. 像通常一样使用 PHP CS Fixer。基线中提到的所有文件都将被跳过,直到它们被更改。

默认情况下,此脚本将文件的相对路径存储在基线文件中。当基线在不同的环境中使用时,这非常有用。

基线生成器选项

选项 baselineconfigfinder 可以是绝对路径、相对路径或省略。在后一种情况下,它期望文件位于项目的根目录。

您可以使用 workdir 选项来自定义工作目录的路径。否则,将使用脚本被调用的目录。同样,对于 PHP CS Fixer 的过滤器也是如此。您可以通过第三个选项为过滤器工厂自定义工作目录。

传递选项 absolute 以强制将项目的文件绝对路径保存到基线中。它不能与选项 workdir 一起使用。

相对路径的使用限制

  1. 选项 workdir 必须是绝对路径。您不能在其中使用“双点”。
  2. 使用了函数 realpath() 来标准化由 Finder 返回的文件路径。为了从文件路径中正确切割出 workdir 以使其变为相对路径。它可能会根据当前用户的权限返回意外结果。请在 PHP 的官方文档中查找此函数的限制:官方文档
  3. 当函数 realpath() 返回空结果或由 Finder 返回的文件路径不是来自工作目录时,路径将“原样”存储。