shawnveltman/phpcsfixer-helper

PHP CS Fixer 规则集合,方便项目间共享

dev-master 2024-06-03 15:35 UTC

This package is auto-updated.

Last update: 2024-09-03 16:07:32 UTC


README

Latest Version on Packagist Total Downloads GitHub Actions

这允许我们的团队能够共享相同的代码风格,减少我们讨论这些事情所需的时间,以及处理与格式相关的提交之间的变更。

先决条件

如果你还没有安装 PhpCsFixer 和 Husky,请将以下内容复制并粘贴到终端中

composer require friendsofphp/php-cs-fixer --dev
npm i -D husky lint-staged@^11.x.x
npm install --save-dev @shufo/prettier-plugin-blade prettier
npx husky init

然后,更新 .husky/pre-commit 文件,只保留以下这一行

npx lint-staged

然后,将以下行添加到 package.json 中(假设你的 Php CS Fixer 文件名为 .php-cs-fixer.php,如有需要请更改)

"lint-staged": {
    "*.php": "php ./vendor/bin/php-cs-fixer fix --config .php-cs-fixer.php",
    "*.blade.php": "node_modules/.bin/prettier --write resources/**/*.blade.php"
  },

安装

您可以通过 composer 安装此包

composer require shawnveltman/phpcsfixer-helper --dev

安装后,在您的根目录中创建一个新的名为 .php-cs-fixer.php 的文件。

更新 .gitignore

将 .php-cs-fixer.cache 添加到您的 .gitignore 文件中!

用法

安装包后,导航到您的 PHP CS Fixer 文件(例如 .php-cs-fixer.php),并将现有的 $rules 数组替换为

use Shawnveltman\PhpcsfixerHelper\PhpcsfixerHelper;

$helper = new PhpcsfixerHelper();
$rules = $helper->get_style_rules();

修复器文件

如果您没有修复器文件,您可以使用以下模板将 .php-cs-fixer.php 文件

<?php

use PhpCsFixer\Finder;
use Shawnveltman\PhpcsfixerHelper\PhpcsfixerHelper;

$helper = new PhpcsfixerHelper();
$rules = $helper->get_style_rules();

$finder = Finder::create()
    ->notPath('bootstrap')
    ->notPath('storage')
    ->notPath('vendor')
    ->notPath('coverage-report')
    ->in(getcwd())
    ->name('*.php')
    ->notName('*.blade.php')
    ->notName('index.php')
    ->notName('server.php')
    ->ignoreDotFiles(true)
    ->ignoreVCS(true);

$config = new PhpCsFixer\Config();

return $config->setFinder($finder)
    ->setRules($rules)
    ->setRiskyAllowed(true)
    ->setUsingCache(true);
 

测试

composer test

常见问题/故障排除

如果您运行了上述步骤,但在提交时没有自动运行,那么您的团队中可能存在不同的 npm 版本。

第一步是删除您的 node_modules 目录和 package-lock.json 文件,然后运行 npm install。

第二步是确保所有团队成员使用相同的 npm 版本。

更新日志

请参阅 CHANGELOG 以获取有关最近更改的更多信息。

贡献

请参阅 CONTRIBUTING 以获取详细信息。

安全性

如果您发现任何与安全性相关的问题,请通过电子邮件 shawn.veltman@gmail.com 联系,而不是使用问题跟踪器。

致谢

许可证

MIT 许可证(MIT)。请参阅 许可证文件 以获取更多信息。

Laravel 包模板

此包是使用 Laravel 包模板 生成的。