aeliot / php-cs-fixer-baseline
PHP CS Fixer 基线
v2.0.2
2024-09-07 10:45 UTC
Requires
- php: ^8.2
- ext-mbstring: *
- friendsofphp/php-cs-fixer: ^3.50
Requires (Dev)
- dg/bypass-finals: ^1.7
- phpstan/extension-installer: ^1.3
- phpstan/phpstan: ^1.11
- phpstan/phpstan-phpunit: ^1.4
- phpunit/phpunit: ^11.1
README
这是 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 之前,这是一种权宜之计。
安装
有几种安装方式
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
配置
- 从 PHP CS Fixer 的配置中提取
Finder
并将其放入单独的文件。它期望在项目的根目录中有.php-cs-fixer-finder.php
。 - 添加由 Finder 检测到的文件的过滤。
use Aeliot\PhpCsFixerBaseline\Service\FilterFactory; $finder->filter((new FilterFactory())->createFilter(__DIR__ . '/.php-cs-fixer-baseline.json', $config));
- 从 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';
使用
- 生成基线。当所有配置文件使用默认名称时,只需调用脚本而不带任何选项。
- 调用 PHAR
php pcsf-baseline.phar
- 或调用通过 Composer 安装的脚本
vendor/bin/pcsf-baseline
- 调用 PHAR
- 像通常一样使用 PHP CS Fixer。基线中提到的所有文件都将被跳过,直到它们被更改。
默认情况下,此脚本将文件的相对路径存储在基线文件中。当基线在不同的环境中使用时,这非常有用。
基线生成器选项
选项 baseline
、config
、finder
可以是绝对路径、相对路径或省略。在后一种情况下,它期望文件位于项目的根目录。
您可以使用 workdir
选项来自定义工作目录的路径。否则,将使用脚本被调用的目录。同样,对于 PHP CS Fixer 的过滤器也是如此。您可以通过第三个选项为过滤器工厂自定义工作目录。
传递选项 absolute
以强制将项目的文件绝对路径保存到基线中。它不能与选项 workdir
一起使用。
相对路径的使用限制
- 选项
workdir
必须是绝对路径。您不能在其中使用“双点”。 - 使用了函数
realpath()
来标准化由Finder
返回的文件路径。为了从文件路径中正确切割出workdir
以使其变为相对路径。它可能会根据当前用户的权限返回意外结果。请在 PHP 的官方文档中查找此函数的限制:官方文档。 - 当函数
realpath()
返回空结果或由Finder
返回的文件路径不是来自工作目录时,路径将“原样”存储。