phootwork/php-cs-fixer-config

php-cs-fixer 的共享配置

v0.4 2021-08-23 15:45 UTC

This package is auto-updated.

Last update: 2024-08-23 22:30:51 UTC


README

Continuous Integration

Phootwork PHP CS Fixer 配置

它基于 prooph/php-cs-fixer-config 的思想。

安装

运行

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

添加到 composer.json;

"scripts": {
  "check": [
    "@cs",
  ],
  "cs": "php-cs-fixer fix -v --diff --dry-run",
  "cs-fix": "php-cs-fixer fix -v --diff",
}

使用

配置

在项目的根目录下创建一个配置文件 .php-cs-fixer.php

<?php

$config = new phootwork\fixer\Config();
$config->getFinder()
    ->exclude(['fixture'])
    ->in(__DIR__ . '/src')
    ->in(__DIR__ . '/tests')

$cacheDir = getenv('TRAVIS') ? getenv('HOME') . '/.php-cs-fixer' : __DIR__;

$config->setCacheFile($cacheDir . '/.php-cs-fixer.cache');

return $config;

Git

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

vendor/
.php-cs-fixer.cache

Travis

更新你的 .travis.yml 以缓存 php-cs-fixer.cache 文件

cache:
  directories:
    - $HOME/.php-cs-fixer

然后在 script 部分运行 php-cs-fixer

script:
  - vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.php --verbose --diff --dry-run

修复问题

手动

如果你需要本地修复问题,只需运行

$ composer cs-fix

预提交钩子

你可以添加一个 pre-commit 钩子

$ touch .git/pre-commit && chmod +x .git/pre-commit

将以下内容粘贴到 .git/pre-commit

#!/usr/bin/env bash

echo "pre commit hook start"

CURRENT_DIRECTORY=`pwd`
GIT_HOOKS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

PROJECT_DIRECTORY="$GIT_HOOKS_DIR/../.."

cd $PROJECT_DIRECTORY;
PHP_CS_FIXER="vendor/bin/php-cs-fixer"

HAS_PHP_CS_FIXER=false

if [ -x "$PHP_CS_FIXER" ]; then
    HAS_PHP_CS_FIXER=true
fi

if $HAS_PHP_CS_FIXER; then
    git status --porcelain | grep -e '^[AM]\(.*\).php$' | cut -c 3- | while read line; do
        ${PHP_CS_FIXER} fix --config-file=.php_cs --verbose ${line};
        git add "$line";
    done
else
    echo ""
    echo "Please install php-cs-fixer, e.g.:"
    echo ""
    echo "  composer require friendsofphp/php-cs-fixer:3.0.0"
    echo ""
fi

cd $CURRENT_DIRECTORY;
echo "pre commit hook finish"

许可证

本软件包使用 MIT 许可证授权。

编辑器/IDE 支持

此存储库包含一个 editors/ 文件夹,其中包含基于这些规则将格式化应用到你的编辑器或 IDE 的文件。你可以查看是否支持你的编辑器/IDE。欢迎发送拉取请求以支持你的编辑器/IDE。