binary-cats / laravel-php-styles
Set of shared PHP style for PHP-CS-Fixer, based on Symphony (PRS12, PSR2) PHP Coding standard.
Requires
- friendsofphp/php-cs-fixer: ^3.0
- illuminate/support: ^8.0|^9.0
README
Set of shared PHP styles for PHP-CS-Fixer, based on Symphony (PRS12, PSR2) PHP Coding standard.
Installation
via Composer:
composer require binary-cats/laravel-php-styles --dev
It will add the package to the require-dev
block of your composer.json
.
You can also add it manually, like this, to get the latest version:
"require-dev": { "binary-cats/laravel-php-styles": "^2.0" },
Laravel
You can publish the stub file using
php artisan vendor:publish --provider=BinaryCats\\PhpStyles\\PhpStyleServiceProvider
You should also add .php-cs-fixer.cache
to your .gitignore
.
Config
The package provides with the current set of rules:
return [ '@Symfony' => true, 'AdamWojs/phpdoc_force_fqcn_fixer' => true, 'concat_space' => ['spacing' => 'one'], 'new_with_braces' => true, 'no_superfluous_phpdoc_tags' => false, 'not_operator_with_successor_space' => true, 'ordered_imports' => ['imports_order' => ['class', 'function', 'const'], 'sort_algorithm' => 'alpha'], 'phpdoc_separation' => false, ];
Integration
PHP-CS-Fixer is going to expect your default configuration to be in a /.php-cs-fixer.dist.php
file.
<?php $finder = PhpCsFixer\Finder::create()->in([ __DIR__.'/app', __DIR__.'/config', __DIR__.'/database', __DIR__.'/routes', __DIR__.'/tests', ]); return BinaryCats\PhpStyles\styles($finder);
Usage
And now you can run the fix like this:
./vendor/bin/php-cs-fixer fix
If you want to see the progress as you go by:
./vendor/bin/php-cs-fixer fix --verbose --show-progress=dots
If you want to add this to composer alias, you can add this to your composer.json
:
... "scripts": { "style": "./vendor/bin/php-cs-fixer fix" }
Advanced Use
If you want to change the rules, disable, or add your own, simply update .php-cs-fixer.dist.php
in your project's root:
... return BinaryCats\PhpStyles\styles($finder, [ // Do not wrap concat . with spaces 'concat_space' => ['spacing' => 'none'], ]);
If you want to add more custom fixers, there is a third argument:
... return BinaryCats\PhpStyles\styles($finder, [ // turn the force FQCN fixer off 'AdamWojs/phpdoc_force_fqcn_fixer' => false, ], [ new \AdamWojs\PhpCsFixerPhpdocForceFQCN\Fixer\Phpdoc\ForceFQCNFixer, ]);
Change log
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING and CODE_OF_CONDUCT for details.
Security
If you discover any security related issues, please email info@binarycats.io instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.