hyperf 路由註解 方法小駝峰 url 蛇形實現

lyxxxh發表於2020-03-26

我想方法小駝峰 url蛇形

例如:
訪問video_list, 呼叫videoList方法

如果用路由檔案很簡單,自動註解不行。

經提醒

hyperf註解路由 方法駱駝 路由蛇形實現

先建立中介軟體

https://doc.hyperf.io/#/zh-cn/middleware/middleware?id=%e8%87%aa%e5%ae%9a%e4%b9%89-coremiddleware-%e7%9a%84%e8%a1%8c%e4%b8%ba

重寫dispatch

class CoreMiddleware extends \Hyperf\HttpServer\CoreMiddleware
{



    public function dispatch(ServerRequestInterface $request): ServerRequestInterface
    {

        $path = $request->getUri()->getPath();
        $path_arr = explode('_',$path);  //分割路徑

        $path_res = '';
        foreach ($path_arr as $key => $path_str)
            if( $key)   //如果不是第一個字串
                $path_res .= ucfirst($path_str);
            else
                $path_res .= $path_str;

        $routes = $this->dispatcher->dispatch($request->getMethod(), $path_res);
        $dispatched = new Dispatched($routes);
        return Context::set(ServerRequestInterface::class, $request->withAttribute(Dispatched::class, $dispatched));
    }

}
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章