jetwaves/laravel-implicit-router

为 Laravel(版本 >= 5.2,已测试 5.5)提供的一个简单的隐式路由/控制器路由器

v1.1.0 2018-02-13 14:00 UTC

This package is not auto-updated.

Last update: 2024-09-29 05:01:50 UTC


README

一个简单的隐式路由/控制器路由器,适用于 Laravel(版本 >= 5.2,已测试 5.5)

感谢 dingo/apiLaravel 框架

如何使用

(示例已在 Laravel 5.5 中测试并正常工作/应该与 Laravel 5.2 5.3 5.4 相同)

场景

从 Laravel 5.2 开始,功能 隐式控制器路由 已被移除。

但有些项目有数千个路由规则需要声明。

解决方案

  1. 在 routes 目录下的 api.php 或 web.php 文件中运行命令

     composer require jetwaves/laravel-implicit-router
  2. 添加以下行(1)

     <?php
     $api = app('Jetwaves\LaravelImplicitRouter\Router');
     $api->controller('URI_PREFIX', 'App\Http\Controllers\TestController');
  3. 在 App/Http/Controllers/TestController.php 文件中,添加如下函数

     <?php
     public function getShowMeTheMoney(Request $req){
         return '10000 gold';
     }
  4. 然后我们可以通过 http://hostname/URI_PREFIX/show-me-the-money 访问这个控制器,并在浏览器中获取以下响应。就像 Laravel 5.1 时代的隐式控制器路由一样。

     10000 gold          
    
  5. 允许所有 Http 方法关键词作为 Camel Type 函数名称的前缀来服务相应的 Http 方法。

  6. 当函数不存在时,您将收到 Laravel 自身的 404 错误。

  7. 以原始方式声明显式路由。(没有变化)

中间件支持

代码片段(1)可以用在中间件闭包中。

Route::middleware(['test'])->group(function () {
    $api = app('Jetwaves\LaravelImplicitRouter\Router');
    $api->controller('URI_PREFIX', 'App\Http\Controllers\TestController');
});

当 'test' 中间件执行

echo 'starcraft tricks :'

并且您访问 http://hostname/URI_PREFIX/show-me-the-money 时,您将在浏览器中看到

starcraft tricks : 10000 gold

可能是一个不太优雅的解决方案,但可以节省您的时间和生命。:-)

待办事项

  1. 支持一些常用的 'native' 中间件声明,与路由声明类似。
  2. 美化 PHP 源代码和此 README 文件。
  3. 使其适用于 Lumen。
  4. 给我你的星标 8-D .