A ready-made ruleset for PHP_CodeSniffer (PHPCS) built on the Slevomat Coding Standard. It enables around 160 rules for arrays, classes, comments, control structures, namespaces, type hints, whitespace and more, so PHP projects get one consistent code style from a single ruleset.xml.
- PHP 8.4 or newer. The latest tagged release, 0.5.0, still requires PHP 8.5; PHP 8.4 support returns with the next release (see CHANGELOG).
- Composer.
slevomat/coding-standard and dealerdirect/phpcodesniffer-composer-installer are installed with the package.
composer require --dev pekral/phpcs-rulesNo configuration is needed: pass the shipped ruleset to PHPCS with --standard. To add or override rules, reference it from a ruleset.xml in your project and run PHPCS with --standard=ruleset.xml:
<?xml version="1.0"?>
<ruleset name="Custom PHPCS Rules">
<rule ref="vendor/pekral/phpcs-rules/ruleset.xml"/>
<!-- Your custom rules here -->
</ruleset>Check a directory:
vendor/bin/phpcs --standard=vendor/pekral/phpcs-rules/ruleset.xml src/Fix what can be fixed automatically:
vendor/bin/phpcbf --standard=vendor/pekral/phpcs-rules/ruleset.xml src/Warning
phpcbf rewrites files in place. Commit or back up your changes before running it.
The ruleset checks only .php files and turns some rules off for certain paths, for example tests/* for ClassLength, FileLength and StaticClosure.
- Rules: every rule the ruleset enables, with key settings and path exclusions.
composer test
composer checkcomposer test runs PHPUnit; composer check runs PHPCS with this ruleset on Examples/, src/ and tests/. CI also runs PHPStan, Rector in dry-run mode and composer check-unused-sniffs on PHP 8.4 and 8.5.
See CHANGELOG.
The MIT License (MIT). See LICENSE.