indentno / laravel-linter
Linting for your laravel project
Requires
- php: >=8.1
- tightenco/tlint: ^9.3
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- phpunit/phpunit: ^9.5
- sempro/phpunit-pretty-print: ^1.4
- symfony/var-dumper: ^5.2
README
Linting for your laravel project.
A laravel linter based on the tlint package from the folks over at Tighten.
Installation
Install the package as a dev dependency:
composer require indentno/laravel-linter --dev
Create a config (tlint.json
), at the root of your repository, with the following contents:
{ "preset": "Indent\\LaravelLinter\\Presets\\IndentPreset", "excluded": [ "tests/", "database/" ] }
Usage
Run the linter with all linters in the preset:
./vendor/bin/tlint
Run the linter against a single file or directory:
./vendor/bin/tlint lint app/Http/Controllers/PageController.php ./vendor/bin/tlint lint app
Lint the project with a single linter:
./vendor/bin/tlint --only="NoCompact"
Configuration
The tlint.json
config supports three different config keys.
Preset
The "preset" defines which preset that should be used for linting the project. A preset is basicly just a set of linters, or rules, that the project should adhere to.
Excluded
"excluded" is an array of paths that should be excluded from the linting process.
Disabled
The "disabled" key can be used to disable a set of linters from being run in your project.
{ "preset": "Indent\\LaravelLinter\\Presets\\IndentPreset", "disabled": [ "NoCompact", "UseConfigOverEnv" ], "excluded": [ "tests/", "database/" ] }
Rules
An overview of rules that needs further explanation.
ValidRouteStructure
Routes should be structured the way we prefer.
Examples
Route::get('articles', [ArticleController::class, 'index'])->name('article.index'); Route::patch('page/{id}', [PageController::class, 'update']) ->name('admin.page.update') ->middleware(CanUpdatePage::class);
License
MIT © Indent