Lumen路由控制器跳转:如何实现IDE直接跳转及提示?
时间:2024-12-6 21:06 作者:emer 分类: 无

直接点击 lumen 路由控制器跳转到相关文件
在 lumen 中设置路由时,可以通过以下方式直接点击控制器跳转到相关文件:
在 /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 即可支持跳转和提示功能。
注意:
- 旧版 可能无法跳转:这是因为 lumenroutingrouter::get 方法的第二个参数签名为 mixed,而非 callback。
- 需要提示文件:ide 可能无法识别,需要添加提示文件(可在 laravel-ide-helper 中添加)。
- 付费插件:laravel idea 插件(3 美元/月)也可提供跳转和提示功能。
- 不推荐新项目使用 lumen:复杂项目时,lumen 往往会转化为 laravel 形状。
以上就是Lumen路由控制器跳转:如何实现IDE直接跳转及提示?的详细内容,!