binary-cats/laravel-php-styles

Set of shared PHP style for PHP-CS-Fixer, based on Symphony (PRS12, PSR2) PHP Coding standard.

2.0.0 2021-05-08 21:35 UTC

This package is auto-updated.

Last update: 2024-05-09 04:20:00 UTC


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.