woohoolabs/coding-standard
Woohoo Labs PHP Coding Standard for PHP_CodeSniffer, based on PSR-12 and inspired by Doctrine and Slevomat rules. Install via Composer and drop in the provided phpcs.xml to start enforcing consistent code style (PHP 7.4+).
Illuminate\ namespace handling).var_dump in production), conflicts with Laravel’s defaults may arise.@SlevomatPlus).Illuminate\ namespace enforcement, Blade syntax)..php-cs-fixer.dist.php.| Risk Area | Severity | Mitigation Strategy |
|---|---|---|
| PHP 8.1+ Requirement | High | Upgrade Laravel/PHP if <8.1 (or use --ignore-errors). |
| Rule Breaking Changes | Medium | Run php-cs-fixer fix --dry-run pre-migration. |
| slevomat v8 Compatibility | Medium | Test with composer require slevomat/coding-standard:^8.0. |
| Blade Template Rules | Low | Whitelist resources/views/ if rules are too strict. |
| IDE Misconfiguration | Low | Update PHPStorm/VSCode inspection profiles. |
Illuminate\ namespace, Blade syntax.).blade.php files?)composer require --dev slevomat/coding-standard:^8.0 in a test environment.php-cs-fixer fix --dry-run --rules=@WoohooLabs to identify violations.--strict mode.composer.json:
"require-dev": {
"woohoolabs/coding-standard": "^2.4",
"php-cs-fixer": "^3.0",
"slevomat/coding-standard": "^8.0"
}
@WoohooLabs rule set (may need updates).@foreach indentation, @php blocks).var_dump).--ignore-errors temporarily for critical violations..php-cs-fixer.dist.php and phpcs.xml.php-cs-fixer config:
return PhpCsFixer\Config::create()
->setRules([
'@WoohooLabs' => true,
'@PHP81Migration' => true, // Enable PHP 8.1+ rules
]);
- name: Run PHP-CS-Fixer (slevomat v8)
run: vendor/bin/php-cs-fixer fix --rules=@WoohooLabs --allow-risky=yes
PHP_CodeSniffer validation).php-cs-fixer).@codingStandardsIgnoreStart).var_dump in dev").php-cs-fixer with slevomat v8 rules.readonly properties in PHP 8.1+").| Failure Scenario | Impact | Mitigation |
|---|---|---|
| PHP 8.1+ Upgrade Blockers | Dev environment fails | Use Docker/Laravel Sail for consistency. |
| Rule Overhead Slows CI | Builds time |
How can I help you explore Laravel packages today?