grummfy/laravel-route-controller

在不破坏一切的情况下定义 Router::controller()

1.0.0 2018-02-06 10:15 UTC

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
    • ...

替代方案