diff --git a/.php_cs.dist b/.php_cs.dist index b537623..72983ea 100644 --- a/.php_cs.dist +++ b/.php_cs.dist @@ -1,5 +1,6 @@ setRules()` part of your config. For example, assuming PHP version 7.3: + +```php +use Mollie\PhpCodingStandards\PhpCsFixer\Rules; + +$config->setRules(Rules::getForPhp73()); +``` + +### New to PHP-CS-Fixer + +Place a file named `.php_cs.dist` that has following content in your project's root directory. + +```php +use Mollie\PhpCodingStandards\PhpCsFixer\Rules; +use PhpCsFixer\Config; +use PhpCsFixer\Finder; + +$finder = Finder::create() + ->name('.php_cs.dist') // Fix this file as well + ->in(__DIR__); + +return Config::create() + ->setFinder($finder) + ->setRiskyAllowed(true) + // use specific rules for your php version e.g.: getForPhp71, getForPhp72, getForPhp73 + ->setRules(Rules::getForPhp71()); +``` + +### Manual Triggering +Run following command in your project directory, that will run fixer for every `.php` file. +```bash +vendor/bin/php-cs-fixer fix +``` + +### Use via PhpStorm file watcher +Please follow [official PhpStorm documentation](https://www.jetbrains.com/help/phpstorm/using-php-cs-fixer.html#f21a70ca) + +### Use via pre-commit git hook +Place a file with the content of the following bash script into `.git/hooks` directory called pre-commit and make it executable +you can find more details about git hooks on [official git manual](https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks). + +```bash +#!/usr/bin/env bash + +EXCLUDE_DIRECTORIES_REGEX='^(directory_one/(sub_directory_one|sub_directory_two)|directory_two)/.*' +git diff --diff-filter=ACMRTUXB --name-only --staged | grep -E '\.php(_cs\.dist)?$' | grep -vE $EXCLUDE_DIRECTORIES_REGEX | while read FILE; do + STATUS="$(git status --porcelain ${FILE} | cut -c 1-2)" + vendor/bin/php-cs-fixer fix --using-cache=no --quiet --dry-run ${FILE} + + # Not 0 means php-cs-fixer either errored or wanted to make changes + if [ $? != 0 ] + then + # MM = staged & non-staged modification in same file + if [ ${STATUS} = "MM" ] + then + echo -e "\033[31m┌────────────────────────────────────────────────────────────────────────────────┐" + echo -e "│ Failure:\033[39m Codestyle violation(s) in file with both staged and unstaged changes. \033[31m│" + echo -e "├────────────────────────────────────────────────────────────────────────────────┘" + echo -e "└\033[33m File:\033[39m $FILE" + exit 1 + fi + + vendor/bin/php-cs-fixer fix --using-cache=no --quiet ${FILE} + git add ${FILE} + fi +done +``` + +## Installation +```bash +composer require --dev mollie/php-coding-standards +``` + +## Working at Mollie +Mollie is always looking for new talent to join our teams. We’re looking for inquisitive minds with good ideas and +strong opinions, and, most importantly, who know how to ship great products. Want to join the future of payments? +[Check out our vacancies](https://jobs.mollie.com). + +## License +[BSD (Berkeley Software Distribution) License](https://opensource.org/licenses/bsd-license.php). +Copyright (c) 2013-2019, Mollie B.V. diff --git a/composer.json b/composer.json index 09a9444..3d194ee 100644 --- a/composer.json +++ b/composer.json @@ -16,9 +16,7 @@ }, "minimum-stability": "stable", "require": { - "php": "^7.1.3" - }, - "require-dev": { + "php": "^7.1.3", "friendsofphp/php-cs-fixer": "^2.15" }, "bin": [ diff --git a/src/PhpCsFixer/Rules.php b/src/PhpCsFixer/Rules.php index 77aebd8..f8daeb3 100644 --- a/src/PhpCsFixer/Rules.php +++ b/src/PhpCsFixer/Rules.php @@ -14,7 +14,7 @@ public static function getForPhp71(array $overriddenRules = []): array return array_merge(self::getBaseRules(), $overriddenRules); } - public static function getForPhp72(array $overriddenRules = []) : array + public static function getForPhp72(array $overriddenRules = []): array { $specific72Rules = [ // At the moment there are no specific 7.2 rules or configurations @@ -23,7 +23,7 @@ public static function getForPhp72(array $overriddenRules = []) : array return array_merge(self::getForPhp71($specific72Rules), $overriddenRules); } - public static function getForPhp73(array $overriddenRules = []) : array + public static function getForPhp73(array $overriddenRules = []): array { $specific73Rules = [ 'heredoc_indentation' => true,