直接点击 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直接跳转及提示?的详细内容,更多请关注其它相关文章!
Article Links:https://www.hinyin.com/n/283511.html
Article Source:admin
Article Copyright:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。