php-cs-fixer-config
PHP CS Fixer config for prooph components, (*1)
, (*2)
It's based on the ideas of refinery29/php-cs-fixer-config
., (*3)
Installation
Run, (*4)
$ composer require --dev prooph/php-cs-fixer-config
Add to composer.json;, (*5)
"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:, (*6)
<?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;
When you create a .docheader
in the root of your project it will be used as header comment., (*7)
It is recommended to use the following template but you may use anything you want., (*8)
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
:, (*9)
vendor/
.php-cs-fixer.cache
Travis
Update your .travis.yml
to cache the .php-cs-fixer.cache
file:, (*10)
cache:
directories:
- $HOME/.php-cs-fixer.cache
Then run php-cs-fixer
in the script
section:, (*11)
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, (*12)
$ composer cs-fix
Pre-commit hook
You can add a pre-commit
hook, (*13)
$ touch .git/pre-commit && chmod +x .git/pre-commit
Paste this into .git/pre-commit
:, (*14)
#!/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., (*15)