mollie / php-coding-standards
Contains PHP coding standards like rules for PHP-CS-Fixer that serves for purpose of standardization.
Installs: 30 681
Dependents: 0
Suggesters: 0
Security: 0
Stars: 18
Watchers: 30
Forks: 8
Open Issues: 1
Requires
- php: ^7.1.3 || ^8.0
- friendsofphp/php-cs-fixer: ^3.64
README
Contains PHP coding standards like rules for PHP-CS-Fixer that serves for purpose of standardization.
Installation
composer require --dev mollie/php-coding-standards
Usage
This package makes use of PHP-CS-Fixer.
Already familiar with PHP-CS-Fixer
This package provides default rules to be used with PHP-CS-Fixer.
You can find them in Mollie\PhpCodingStandards\PhpCsFixer\Rules
which has methods specific to php version,
which you can directly use in the ->setRules()
part of your config. For example, assuming PHP version 8.3:
use Mollie\PhpCodingStandards\PhpCsFixer\Rules; $config->setRules(Rules::getForPhp83());
New to PHP-CS-Fixer
Place a file named .php-cs-fixer.dist.php
that has the following content in your project's root directory.
<?php use Mollie\PhpCodingStandards\PhpCsFixer\Rules; use PhpCsFixer\Config; use PhpCsFixer\Finder; $finder = Finder::create() ->in(__DIR__); return (new Config()) ->setFinder($finder) ->setRiskyAllowed(true) // use specific rules for your php version e.g.: getForPhp74, getForPhp82, getForPhp83 ->setRules(Rules::getForPhp74());
Manual Triggering
Run following command in your project directory, that will run fixer for every .php
file.
vendor/bin/php-cs-fixer fix
Use via PhpStorm file watcher
Please follow official PhpStorm documentation
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.
#!/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
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.
License
BSD (Berkeley Software Distribution) License. Copyright (c) 2023, Mollie B.V.