grummfy / laravel-route-controller
在不破坏一切的情况下定义 Router::controller()
1.0.0
2018-02-06 10:15 UTC
Requires
- illuminate/routing: ^5.5
This package is auto-updated.
Last update: 2024-08-28 18:29:43 UTC
README
这个库和其他现有库一样,提供了一个处理 Router::controller
的方式。关键特性
- 允许缓存路由
- 无需额外操作
- 允许继承路由组
- 独立命名空间
与laravel 5.5兼容。(可能也兼容旧版本)。
安装
安装依赖
composer require grummfy/laravel-route-controller
发布配置
php artisan vendor:publish --tag=config --provider=Grummfy\LaravelRouteController\RouteControllerProvider
使用
一旦安装了包并自动发现(或您已手动添加提供者),包就准备就绪,可以使用了。
在您的路由文件中,只需这样做
Route::controller('/foo', \App\Http\Controllers\FooController::class);
它将自动将类的所有公开方法(包括特性)转换为路由。
您还可以使用第三个参数添加额外的选项,例如中间件或其他任何内容。
Route::controller('/foo', \App\Http\Controllers\FooController::class, ['middleware' => 'can:baz']);
您还有一个额外选项,可以防止从父方法继承
Route::controller('/foo', \App\Http\Controllers\FooController::class, ['middleware' => 'can:baz', 'heritage' => false]);
示例
假设我们有一个FooController类(见示例),在这种情况下,我们将有一系列将被转换为路由的方法
- index() -> /foo, foo.index
- getStatus(string $status) -> /foo/status/{status}, foo.status.post
- postStatus(string $status) -> /foo/status/{status}, foo.status.get
- foo() -> /foo/foo, foo.foo
- my() -> /foo/my, foo.my
待办事项
- 单元测试
- QA工具
- travis
- styleci
- scrutinizer
- ...