Webman-framework 從1.43升級到 v1.5.0時,中間件獲取路由參數(shù)報錯,之前1.43可以直接獲取
public function process(Request $request, callable $handler): Response
{
$route = $request->route;
var_export($route->getCallback());
$response = $handler($request);
return $response;
TypeError: Webman\Route\Route::getCallback(): Return value must be of type ?callable, string returned in /Users/test/manadmin/vendor/workerman/webman-framework/src/Route/Route.php:131
public function process(Request $request, callable $handler): Response
{
$route = $request->route;
var_export($route->getCallback());
$response = $handler($request);
return $response;
#### 參考文檔
中間件
<?php
namespace app\middleware;
use Webman\MiddlewareInterface;
use Webman\Http\Response;
use Webman\Http\Request;
class Hello implements MiddlewareInterface
{
public function process(Request $request, callable $handler) : Response
{
$route = $request->route;
// 如果請求沒有匹配任何路由(默認路由除外),則 $request->route 為 null
// 假設瀏覽器訪問地址 /user/111,則會打印如下信息
if ($route) {
var_export($route->getPath()); // /user/{uid}
var_export($route->getMethods()); // ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'HEAD','OPTIONS']
var_export($route->getName()); // user_view
var_export($route->getMiddleware()); // []
var_export($route->getCallback()); // ['app\controller\UserController', 'view']
var_export($route->param()); // ['uid'=>111]
var_export($route->param('uid')); // 111
}
return $handler($request);
}
}
#### 操作系統(tǒng)及workerman/webman等框架組件具體版本
macos php8.1 Webman-framework v1.5.0