jubeki / laravel-code-style
Combine Custom Fixers with the ruleset of Laravel Pint to fix your code style in Laravel Applications/Packages.
Installs: 329 935
Dependents: 13
Suggesters: 0
Security: 0
Stars: 57
Watchers: 2
Forks: 33
Open Issues: 0
Requires
- php: ^8.0
- friendsofphp/php-cs-fixer: ^3.47
- illuminate/support: ^9.34 || ^10.0 || ^11.0
Requires (Dev)
- orchestra/testbench: ^8.0 || ^9.0
- phpunit/phpunit: ^10.4.1
This package is auto-updated.
Last update: 2024-11-23 12:49:10 UTC
README
Laravel Code Style
Combine Custom Fixers with the ruleset of Laravel Pint
Introduction
This package provides automatic code style checking and formatting for Laravel applications and packages using the same ruleset as Laravel Pint. This package is built on top of PHP-CS-Fixer and therefor gives you the ability to add custom fixers. (which is one of the shortcomings of Laravel Pint)
Installation
composer require jubeki/laravel-code-style --dev
Once the package is installed you should publish the configuration.
php artisan vendor:publish --provider="Jubeki\LaravelCodeStyle\ServiceProvider"
Publishing the config will add a .php-cs-fixer.dist.php
configuration file to the root of your project. You may customize this file as needed and then commit it to your version control system.
A cache file will be written to .php-cs-fixer.cache
in the project root the first time you run the fixer. You should ignore this file so it is not added to your version control system.
echo '.php-cs-fixer.cache' >> .gitignore
Usage
Once the package is installed you can check and fix your code formatting with the on subcommand of vendor/bin/php-cs-fixer
.
Automatically fix the code style
To automatically fix the code style of your project you may use the following command:
vendor/bin/php-cs-fixer fix
By default only the file names of every file fixed will be shown. To see a full diff of every change append the --diff
flag.
Checking for code style violations
If you would like to check the formatting without actually altering any files you should use the fix
command with the --dry-run
flag.
vendor/bin/php-cs-fixer fix --dry-run --diff
In dry-run mode any violations will cause the command to return a non-zero exit code. You can use this command to fail a CI build or git commit hook.
Composer script
To make checking and fixing code style easier for contributors to your project it's recommended to add the commands as a composer script:
{ "scripts": { "check-style": "php-cs-fixer fix --dry-run --diff", "fix-style": "php-cs-fixer fix" } }
More Options
For a complete list of options please consult the PHP-CS-Fixer documentation.
Configuration
The default configuration is published as .php-cs-fixer.dist.php
in the project root. You can customize this file to change options such as the paths searched or the fixes applied.
Paths
You can change the paths searched for PHP files by chaining method calls onto the PhpCsFixer\Finder
instance being passed to the Jubeki\LaravelCodeStyle\Config::setFinder
method.
For example, to search the examples
directory you would append ->in('examples')
:
<?php require __DIR__ . '/vendor/autoload.php'; return (new Jubeki\LaravelCodeStyle\Config()) ->setFinder( PhpCsFixer\Finder::create() ->in(app_path()) // ... ->in('examples') ) // ...
The default paths are setup for a Laravel application. If you are writing a package the path helper functions will not available and you will need to change the paths as necessary, i.e. PhpCsFixer\Finder::create()->in(__DIR__)
.
For a complete list of options refer to the Symfony Finder documentation.
Rules
By default only the Laravel Pint preset is enabled. This preset enforces many different rules which can be found in Jubeki\LaravelCodeStyle\Config
It is possible to override a specific rule from the preset. For example, you could disable the no_unused_imports
rule like this:
return (new Jubeki\LaravelCodeStyle\Config()) ->setFinder( // ... ) ->setRules([ 'no_unused_imports' => false, ]);
For a complete list of available rules please refer to the php-cs-fixer documentation.
Releases
A major version bump only occurs should there be a big change to the Laravel Pint project.
Otherwise each rule change according to Laravel Pint is only a minor version bump. (This means there can be rules added, changed or removed).
Changelog
Please see CHANGELOG for more information on what has changed recently.
Testing
$ composer test
Contributing
Please see CONTRIBUTING for details.
Credits
- Julius Kiekbusch
- Matt Allan (Original Creator)
- All Contributors
License
The MIT License (MIT). Please see License File for more information.