phootwork/php-cs-fixer-config
Reusable PHP-CS-Fixer configuration by phootwork. Provides a shared ruleset and presets to standardize code style across projects, making it easy to apply consistent formatting in CI and local development with minimal setup.
Phootwork PHP CS Fixer config
It's based on the ideas of prooph/php-cs-fixer-config.
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",
}
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;
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
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 --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"
This package is licensed using the MIT License.
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
How can I help you explore Laravel packages today?