prooph / php-cs-fixer-config
PHP CS Fixer config for prooph components
Installs: 54 379
Dependents: 79
Suggesters: 0
Security: 0
Stars: 24
Watchers: 6
Forks: 7
Open Issues: 0
Requires
- php: ^7.1 || ^8.0
- friendsofphp/php-cs-fixer: ^3.1
Requires (Dev)
- phpunit/phpunit: ^9.5
- satooshi/php-coveralls: ^1.0
README
PHP CS Fixer config for prooph components
It's based on the ideas of refinery29/php-cs-fixer-config
.
Installation
Run
$ composer require --dev prooph/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 Prooph\CS\Config\Prooph(); $config->getFinder()->in(__DIR__); $config->getFinder()->append(['.php-cs-fixer.php']); $cacheDir = getenv('TRAVIS') ? getenv('HOME') . '/.php-cs-fixer' : __DIR__; $config->setCacheFile($cacheDir . '/.php-cs-fixer.cache'); return $config;
Header
When you create a .docheader
in the root of your project it will be used as header comment.
It is recommended to use the following template but you may use anything you want.
This file is part of `%package%`.
(c) 2016-%year% prooph software GmbH <contact@prooph.de>
(c) 2016-%year% Sascha-Oliver Prolic <saschaprolic@googlemail.com>
For the full copyright and license information, please view the LICENSE
file that was distributed with this source code.
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.cache
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-fixer.php --verbose ${line}; git add "$line"; done else echo "" echo "Please install php-cs-fixer, e.g.:" echo "" echo " composer require friendsofphp/php-cs-fixer:2.0.0" echo "" fi cd $CURRENT_DIRECTORY; echo "pre commit hook finish"
License
This package is licensed using the MIT License.