diablomedia/php-cs-fixer-config
Reusable PHP-CS-Fixer configuration package by Diablo Media. Provides a shared, opinionated ruleset you can require in multiple projects to keep code style consistent and reduce per-repo fixer setup.
composer require --dev diablomedia/php-cs-fixer-config
.php-cs-fixer.dist.php:
<?php
use Diablomedia\PhpCsFixerConfig\Config;
$config = Config::laravel();
$config->setRules([
// Override or extend rules here if needed
'@PSR12' => true,
]);
return $config;
vendor/bin/php-cs-fixer fix
use statements, PSR-12 compliance) across a team.# Example GitHub Actions step
- name: Run PHP-CS-Fixer
run: vendor/bin/php-cs-fixer fix --dry-run --diff
Team-Wide Adoption
Project-Specific Overrides
.php-cs-fixer.dist.php:
$config = Config::laravel();
$config->setRules([
'@Symfony' => true, // Add Symfony-specific rules
'no_unused_imports' => true,
]);
--allow-risky=yes for experimental rules (e.g., @PHP80Migration).CI Integration
vendor/bin/php-cs-fixer fix --dry-run --diff --stop-on-violation
- uses: actions/cache@v3
with:
path: vendor
key: ${{ runner.os }}-php-cs-fixer-${{ hashFiles('**/composer.lock') }}
Laravel-Specific Patterns
app/, config/, routes/) in CI:
vendor/bin/php-cs-fixer fix app/ config/ routes/ --dry-run
Rule Conflicts
@PSR12 and @Symfony presets without testing; some rules may overlap or contradict.--verbose to see which rules are applied:
vendor/bin/php-cs-fixer fix --verbose
Performance in Large Projects
storage/, bootstrap/cache/) to speed up runs:
$config->setFinder()
->exclude(['storage/', 'bootstrap/cache/']);
Version Skew Issues
composer.json to avoid unexpected rule changes:
"require-dev": {
"diablomedia/php-cs-fixer-config": "1.2.0"
}
IDE Integration
.php-cs-fixer.dist.php file in IDE settings under "PHP > Code Style > PHP-CS-Fixer".vendor/bin/php-cs-fixer fix --dry-run --diff
vendor/bin/php-cs-fixer fix app/Models/User.php
vendor/bin/php-cs-fixer --dump-rules
Custom Presets
$config = Config::laravel();
$config->setRules([
'@CustomPreset' => [
'no_superfluous_phpdoc_tags' => true,
'ordered_imports' => ['sort_algorithm' => 'alpha'],
],
]);
Dynamic Configs
$config->setRules([
'concat_space' => getenv('ENABLE_CONCAT_SPACE') === 'true',
]);
Git Hooks
php-cs-fixer’s --allow-risky cautiously):
# .git/hooks/pre-commit
#!/bin/sh
vendor/bin/php-cs-fixer fix --allow-risky --diff
Parallel Processing
--parallel (requires PHP 7.4+):
vendor/bin/php-cs-fixer fix --parallel
How can I help you explore Laravel packages today?