pekral / phpcs-rules
Custom ruleset for PHP_CodeSniffer (PHPCS) with additional rules and configuration, based on Slevomat Coding Standard. Helps to enforce consistent code style and best practices in PHP projects.
Package info
Type:phpcodesniffer-standard
pkg:composer/pekral/phpcs-rules
Fund package maintenance!
Requires
- php: ^8.5
- dealerdirect/phpcodesniffer-composer-installer: ^1.2.1
- slevomat/coding-standard: ^8.30.1
Requires (Dev)
- illuminate/collections: ^13.17.0
- mockery/mockery: ^1.6.12
- pekral/cursor-rules: dev-master
- pekral/phpstan-rules: dev-master
- pekral/rector-rules: dev-master
- phpunit/phpunit: ^13.2.1
- roave/security-advisories: dev-latest
- symfony/console: ^7.4.1 || ^8.1.1
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
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.
Requirements
- 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.
Installation
composer require --dev pekral/phpcs-rules
Configuration
No 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>
Quick start
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.
Documentation
- Rules: every rule the ruleset enables, with key settings and path exclusions.
Testing
composer test
composer check
composer 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.
Changelog
See CHANGELOG.
License
The MIT License (MIT). See LICENSE.