prooph/php-cs-fixer-config
Shared PHP-CS-Fixer configuration from the prooph team. Provides a ready-to-use ruleset and presets to keep PHP code style consistent across projects, with an easy way to apply and maintain formatting standards in CI or local development.
PHP CS Fixer config for prooph components
It's based on the ideas of refinery29/php-cs-fixer-config.
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",
}
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;
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.
Add .php-cs-fixer.cache (this is the cache file created by php-cs-fixer) to .gitignore:
vendor/
.php-cs-fixer.cache
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
If you need to fix issues locally, just run
$ composer cs-fix
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"
This package is licensed using the MIT License.
How can I help you explore Laravel packages today?