worksome/coding-style
Worksome’s shared PHP coding style package. Generates ready-to-use configs for Easy Coding Standard (ECS), PHPStan, and Rector, extending PSR-12 with additional and customized rules. Install via Composer, generate stubs, and run via composer scripts.
Strengths:
DisallowEnvUsageSniff, DisallowHasFactorySniff) enforce best practices tailored to Laravel’s ecosystem (e.g., preferring factories over HasFactory, discouraging env() helpers).Gaps:
DisallowPHPUnit, DisallowEnvUsage) may conflict with legacy codebases or team preferences.laravel-pint) for full Blade compliance.composer require --dev and generates configs via a single CLI command.resources/ for Blade files, app/ for business logic).php-cs-fixer with stricter rules.declare(strict_types=1) enforcement).env() to config).composer ecs, composer phpstan) are pre-configured for GitHub Actions, GitLab CI, etc.DisallowHasFactorySniff) may require significant refactoring in existing codebases.laravel-pint, pint, or custom PHPStan configs).pint, custom PHPStan configs) that could conflict?DisallowPHPUnit, DisallowEnvUsage)?HasFactory, env() helpers) that need grandfathering?phpstan --generate-baseline.)app/, resources/, migration patterns).HasFactory, env() usage, Blade files outside resources/).pint, php-cs-fixer).composer require --dev worksome/coding-style
composer generate-coding-style-stubs
composer ecs --dry-run
composer phpstan analyse --no-progress
composer rector process --dry-run
env() → config).baseline to ignore existing violations temporarily..phpstan.neon or ecs.php:
includes:
- vendor/worksome/coding-style/phpstan/laravel.neon
- vendor/worksome/coding-style/phpstan/generic.neon
| Component | Compatibility Notes |
|---|---|
| Laravel | Optimized for Laravel 9+. Test with Laravel 10+ for enum/attributes support. |
| PHP | Requires PHP 8.1+ (for strict types, enums). |
| ECS | Extends PSR-12; conflicts unlikely unless custom ECS configs exist. |
| PHPStan | May conflict with existing phpstan.neon; merge configs carefully. |
| Rector | Safe for refactoring but test dry runs in CI first. |
| Blade | Only enforces directory placement; no linting for syntax/logic. |
| CI/CD | Pre-configured for GitHub Actions/GitLab CI; add caching for PHPStan/Rector. |
.php-cs-fixer.dist.php, phpstan.neon, and Rector configs.pint, custom sniffs).composer require --dev worksome/coding-style.composer generate-coding-style-stubs.ecs.php/phpstan.neon if needed.composer.json scripts:
"scripts": {
"lint": "composer ecs && composer phpstan analyse --no-progress",
"fix": "composer ecs:fix && composer rector:fix"
}
- name: Lint
run: composer lint
- name: Fix (optional)
run: composer fix
DisallowEnvUsageSniff).baseline as needed).DisallowHasFactorySniff) may need updates for Laravel releases.How can I help you explore Laravel packages today?