coffreo/php-cs-fixer-config

为 friendsofphp/php-cs-fixer 提供一个配置工厂和多个 Coffreo 规则集。

v2.3.1 2020-10-24 20:21 UTC

This package is auto-updated.

Last update: 2024-09-25 04:44:13 UTC


README

所有荣誉归 localheinz/php-cs-fixer-config

此项目是带有 Coffreo 规则和一些更改的分支,

  • 以添加头部模板功能
  • 添加读取 composer.json 数据以满足头部模板的功能
  • 在测试中处理多个版本的 php-cs-fixer

此仓库为 friendsofphp/php-cs-fixer 提供一个配置工厂和多个 Coffreo 规则集。

安装

运行

$ composer require --dev coffreo/php-cs-fixer-config

使用方法

配置

选择一个规则集

  • Coffreo\PhpCsFixer\Config\RuleSet\Php54 (包含迁移 5.6 规则)
  • Coffreo\PhpCsFixer\Config\RuleSet\Php54To56 (仅包含迁移 5.6 规则)
  • Coffreo\PhpCsFixer\Config\RuleSet\Php56
  • Coffreo\PhpCsFixer\Config\RuleSet\Php70
  • Coffreo\PhpCsFixer\Config\RuleSet\Php71
  • Coffreo\PhpCsFixer\Config\RuleSet\Php72

📒 所有配置(除 Php54To56 外)包含 @Symfony@PSR2 规则。

在项目根目录创建一个配置文件 .php_cs

<?php

use Coffreo\PhpCsFixer\Config;

// read composer
$composer = json_decode(file_get_contents(__DIR__."/composer.json"));
if (null === $composer) {
    throw new \Exception('Composer.json invalid. CS-Fixer aborted.');
}
$header = Config\HeaderHelper::coffreo(compact("composer"));

$config = Config\Factory::fromRuleSet(

    // CHOOSE YOUR RULE SET HERE
    new Config\RuleSet\Php54($header)

);
$config->getFinder()->in(__DIR__.'/src');
$config->setCacheFile(__DIR__.'/.php_cs.cache');

return $config;

Git

.php_cs.cache(这是由 php-cs-fixer 创建的缓存文件)添加到 .gitignore

vendor/
.php_cs.cache

Makefile(可选)

创建一个带有 cs 目标的 Makefile

.PHONY: composer cs

composer:
	composer validate
	composer install

cs: composer
	vendor/bin/php-cs-fixer fix --config=.php_cs --diff --verbose

💡 这可以通过其他脚本启动器(npm run ..composer run-script ..)完成

开发者命令

当更新此项目时需要了解的少量命令

$ make test   # run PHPUnit test suite
$ make cs     # Apply CS to source code (THIS MUST BE DONE BEFORE PUSHING)
$ make        # lazy ? execute both above commands

常见问题解答

  • 我已经安装了所有内容,但它仍然警告说有一些规则不存在。

你得到这个错误信息是因为 friendsofphp/php-cs-fixer 的版本与所选规则集不兼容。有两个潜在的原因

  • 确保你的规则集与你的 PHP 版本兼容(56 对 5.6,70 对 7.0 等...)
  • 检查你的 composer.json,看看是否有 config.platform 键。它应该是未定义的或根据你的 PHP 版本有正确值。此配置键的存在强制 composer 安装与由此键定义的 PHP 版本相关的 cs-fixer 版本,忽略真实的当前 PHP 版本。)