furkankufrevi/laravel-route-linter
Composer 安装命令:
composer require furkankufrevi/laravel-route-linter
包简介
Static analysis for Laravel routes. Detects missing middleware, unused named routes, duplicate URIs, missing controller methods, and more.
README 文档
README
Static analysis for your Laravel routes. Detects missing controller methods, duplicate URIs, duplicate names, missing middleware, and unnamed routes.
Installation
composer require furkankufrevi/laravel-route-linter --dev
The service provider is auto-discovered. To publish the config:
php artisan vendor:publish --tag=route-linter-config
Usage
php artisan route:lint
Run a specific analyzer only:
php artisan route:lint --analyzer=duplicate_uris
Example Output
Analyzing 42 route(s)...
ERROR Method 'destroy' not found in App\Http\Controllers\UserController.
DELETE|HEAD api/users/{user}
WARN Duplicate route URI registered (first seen pointing to App\Http\Controllers\PostController@index).
GET|HEAD api/posts
WARN Route matches 'api/*' but is missing required middleware 'auth:sanctum'.
GET|HEAD api/public/feed
INFO Route has no name. Consider adding ->name() for URL generation.
POST|HEAD api/webhooks/stripe
Found 1 error(s), 2 warning(s), 1 info(s).
Analyzers
| Analyzer | Level | What it detects |
|---|---|---|
missing_controller_methods |
Error | Controller class or method doesn't exist |
duplicate_uris |
Warning | Same HTTP method + URI registered more than once |
duplicate_names |
Error | Multiple routes sharing the same name |
missing_middleware |
Warning | Routes matching a pattern but missing required middleware |
unnamed_routes |
Info | Controller routes without a ->name() |
Configuration
// config/route-linter.php return [ // Enable/disable individual analyzers 'analyzers' => [ 'missing_controller_methods' => true, 'duplicate_uris' => true, 'duplicate_names' => true, 'missing_middleware' => true, 'unnamed_routes' => true, ], // Enforce middleware on route patterns 'required_middleware' => [ 'api/*' => ['auth:sanctum'], 'admin/*' => ['auth', 'admin'], ], // Exclude routes from linting 'exclude' => [ '_ignition/*', 'sanctum/*', 'telescope/*', 'horizon/*', ], ];
CI Integration
Add to your CI pipeline to catch route issues before deployment:
- run: php artisan route:lint
The command exits with code 1 if any errors are found, making it CI-friendly.
License
MIT
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 6
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-03-16