海印网
海印网

Lumen路由控制器跳转:如何实现IDE直接跳转及提示?

admin数码00

Lumen路由控制器跳转:如何实现IDE直接跳转及提示?-第1张图片-海印网

直接点击 lumen 路由控制器跳转到相关文件

在 lumen 中设置路由时,可以通过以下方式直接点击控制器跳转到相关文件:

在 bootstrap/app.php 中修改 $app 变量的初始化:

$app = new class (dirname(__dir__)) extends laravellumenpplication {
    protected function callactiononarraybasedroute($routeinfo)
    {
        $action = $routeinfo[1]['target'] ?? $routeinfo[1];
        if (
            is_array($action)
            && count($action) === 2
            && class_exists($action[0])
            && method_exists($action[0], $action[1])
        ) {
            try {
                [$controller, $method] = $action;
                return $this->prepareresponse($this->call([$this->make($controller), $method], $routeinfo[2]));
            } catch (httpresponseexception $e) {
                return $e->getresponse();
            }
        }

        return parent::callactiononarraybasedroute($routeinfo);
    }
};

登录后复制

之后便可以在路由中以如下方式定义:

$router->get('/foo', [
    'target' => ['AppHttpControllersExampleController', 'index']
]);

$router->get('/foo', ['AppHttpControllersExampleController', 'index']);

登录后复制

ide 即可支持跳转和提示功能。

注意:

  • 旧版 phpstorm 可能无法跳转:这是因为 laravellumenroutingrouter::get 方法的第二个参数签名为 mixed,而非 callback。
  • 需要提示文件:ide 可能无法识别,需要添加提示文件(可在 laravel-ide-helper 中添加)。
  • 付费插件:laravel idea 插件(3 美元/月)也可提供跳转和提示功能。
  • 不推荐新项目使用 lumen:复杂项目时,lumen 往往会转化为 laravel 形状。

以上就是Lumen路由控制器跳转:如何实现IDE直接跳转及提示?的详细内容,更多请关注其它相关文章!

Tags: 跳转路由

Sorry, comments are temporarily closed!