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/api 和 Laravel 框架
如何使用
(示例已在 Laravel 5.5 中测试并正常工作/应该与 Laravel 5.2 5.3 5.4 相同)
场景
从 Laravel 5.2 开始,功能 隐式控制器路由 已被移除。
但有些项目有数千个路由规则需要声明。
解决方案
-
在 routes 目录下的 api.php 或 web.php 文件中运行命令
composer require jetwaves/laravel-implicit-router
-
添加以下行(1)
<?php $api = app('Jetwaves\LaravelImplicitRouter\Router'); $api->controller('URI_PREFIX', 'App\Http\Controllers\TestController');
-
在 App/Http/Controllers/TestController.php 文件中,添加如下函数
<?php public function getShowMeTheMoney(Request $req){ return '10000 gold'; }
-
然后我们可以通过 http://hostname/URI_PREFIX/show-me-the-money 访问这个控制器,并在浏览器中获取以下响应。就像 Laravel 5.1 时代的隐式控制器路由一样。
10000 gold
-
允许所有 Http 方法关键词作为 Camel Type 函数名称的前缀来服务相应的 Http 方法。
-
当函数不存在时,您将收到 Laravel 自身的 404 错误。
-
以原始方式声明显式路由。(没有变化)
中间件支持
代码片段(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
。
可能是一个不太优雅的解决方案,但可以节省您的时间和生命。:-)
待办事项
- 支持一些常用的 'native' 中间件声明,与路由声明类似。
- 美化 PHP 源代码和此 README 文件。
- 使其适用于 Lumen。
- 给我你的星标 8-D .