phootwork / php-cs-fixer-config
Shared config for php-cs-fixer
Installs: 2 688
Dependents: 6
Suggesters: 0
Security: 0
Stars: 3
Watchers: 2
Forks: 2
Open Issues: 0
Requires
- php: >=8.0
- friendsofphp/php-cs-fixer: ^3
README
Phootwork PHP CS Fixer config
It's based on the ideas of prooph/php-cs-fixer-config
.
Installation
Run
$ composer require --dev phootwork/php-cs-fixer-config
Add to composer.json;
"scripts": { "check": [ "@cs", ], "cs": "php-cs-fixer fix -v --diff --dry-run", "cs-fix": "php-cs-fixer fix -v --diff", }
Usage
Configuration
Create a configuration file .php-cs-fixer.php
in the root of your project:
<?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
Add .php-cs-fixer.cache
(this is the cache file created by php-cs-fixer
) to .gitignore
:
vendor/
.php-cs-fixer.cache
Travis
Update your .travis.yml
to cache the php-cs-fixer.cache
file:
cache: directories: - $HOME/.php-cs-fixer
Then run php-cs-fixer
in the script
section:
script: - vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.php --verbose --diff --dry-run
Fixing issues
Manually
If you need to fix issues locally, just run
$ composer cs-fix
Pre-commit hook
You can add a pre-commit
hook
$ touch .git/pre-commit && chmod +x .git/pre-commit
Paste this into .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"
License
This package is licensed using the MIT License.
Editor/IDE Support
This repo contains a editors/
folder, which has contains files to apply formatting based on these rules into your editor or IDE. You can have a look, if your editor/IDE is supported. A pull request to support yours is welcome