Code Quality
This project uses PHPStan for static analysis and Rector for automated code refactoring to maintain high code quality standards.
PHPStan - Static Analysis
PHPStan analyzes the code for potential issues and type safety problems. The configuration is stored in phpstan.neon.dist
.
Generate a new baseline
When introducing PHPStan to legacy code or after major refactoring, you can create a baseline to suppress existing errors:
vendor/bin/phpstan analyse --generate-baseline
Run analysis
To analyze the codebase and find issues:
vendor/bin/phpstan analyse
Configuration
- Configuration file:
phpstan.neon.dist
- Current analysis level: 5
- Baseline file:
phpstan-baseline.neon
(suppresses known issues)
Rector - Automated Refactoring
Rector automatically modernizes PHP code and applies coding standards. The configuration is stored in rector.php
.
Preview changes (recommended first step)
Run a dry-run to see what changes Rector would make without actually modifying files:
vendor/bin/rector process --dry-run
Apply changes
Apply the refactoring rules to actually modify the code:
vendor/bin/rector process
Debug mode
To see detailed information about what Rector is doing:
vendor/bin/rector process --dry-run --debug
Finding new rules
To discover additional Rector rules for your project, visit: https://getrector.com/find-rule
Workflow
- Before making changes: Run
vendor/bin/phpstan analyse
to check current code quality - Use Rector for improvements: Run
vendor/bin/rector process --dry-run
to preview automated fixes - Apply safe changes: Run
vendor/bin/rector process
to apply the changes - Verify with tests: Run
make test
to ensure changes don't break functionality - Final analysis: Run
vendor/bin/phpstan analyse
to confirm improvements
CI/CD Integration
Both PHPStan and Rector are integrated into the CI pipeline to ensure: - No new PHPStan errors are introduced (beyond the baseline) - Code follows modern PHP practices through Rector