laravel的代码在phpstorm里面没办法点击跳转到目标函数,这个大家知道怎么解决吗

gongmeng
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

安装这个包:barryvdh/laravel-ide-helper: IDE Helper for Laravel

然后执行一下:php artisan ide-helper:meta 会自动生成 meta 文件,重启 PHPSTORM 后就可以了。

如果你只是 app 这个一个方法的话,不想安装这个包,也可以自己手动创建一个 .phpstorm.meta.php 文件

  • .phpstorm.meta.php
<?php

namespace PHPSTORM_META {

    override(
        app(0),
        map([
            '' => '@',
        ])
    );
}

然后重启 PHPSTORM

1年前 评论
avrilko 1年前
Rache1 (作者) 1年前
讨论数量: 11
fatrbaby

这个很难,因为PhpStorm的跳转是通过“静态分析”来推导的,而你这个app()这里是个运行时的东西,PhpStorm并不知道app()执行后返回的是什么对象,所以无法定位到find函数;也就说app()需要在执行时才知道他返回的是个什么对象,PhpStorm无法处理。

1年前 评论
随波逐流

不如点 class 来的痛快

1年前 评论
leo

Laravel idea,不过最近又涨价了

1年前 评论

compose install "barryvdh/laravel-ide-helper" 这个可以生成索引路径自定义函数和变量就可以跳了

1年前 评论
porygonCN
/** @var WorkOrderCategoryService */
$service = app(WorkOrderCategoryService::class);
$service->find($id);
1年前 评论
chenxiang 1年前

我一般是写注释

/** @var WorkOrderCategoryService $categoryService */
$categoryService = app(WorkOrderCategoryService::class);
$category = $categoryService->find($categoryId);
1年前 评论
laradocs

方案1(简单粗暴)

安装 Laravel Idea 插件

file

方案2

使用 composer 命令安装 laravel-ide-helper 插件

composer require barryvdh/laravel-ide-helper --dev

方案3(不推荐)

使用注释来指定 PHPStorm 使用类方法

/** @var User $user */
$user = app(User::class);
$user-> // 调用提示

这里需要指定一个变量,我也不清楚是不是必须,不常用。

1年前 评论

安装这个包:barryvdh/laravel-ide-helper: IDE Helper for Laravel

然后执行一下:php artisan ide-helper:meta 会自动生成 meta 文件,重启 PHPSTORM 后就可以了。

如果你只是 app 这个一个方法的话,不想安装这个包,也可以自己手动创建一个 .phpstorm.meta.php 文件

  • .phpstorm.meta.php
<?php

namespace PHPSTORM_META {

    override(
        app(0),
        map([
            '' => '@',
        ])
    );
}

然后重启 PHPSTORM

1年前 评论
avrilko 1年前
Rache1 (作者) 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!