Visual Studio Code PHP Intelephense 不断显示不必要的错误

新手上路,请多包涵

在我今天获得的 PHP Intelephense 的最新更新之后,intelephense 一直为我的路线(以及其他类)显示一个未定义符号的错误,以前没有这样的错误,这让我很困扰。

这是错误截图:

在此处输入图像描述

这是我的代码:

 Route::group(['prefix' => 'user', 'namespace' => 'Membership', 'name' => 'user.'], function () {
    Route::get('profile', 'ProfileController@show')->name('profile.show');
    Route::patch('profile', 'ProfileController@update')->name('profile.update');
    Route::patch('change-password', 'ChangePasswordController@change')->name('change-password');
    Route::get('role', 'ProfileController@getRole')->name('profile.role');
    Route::get('summary', 'SummaryController@show')->name('summary');
    Route::get('reserved', 'AuctionController@reservedAuction')->name('reserved');
});

实际上这段代码没有错误,但是 intelephense 一直显示错误,所以有没有办法解决这个问题?

原文由 Adrian Edy Pratama 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.2k
2 个回答

Intelephense 1.3 添加了未定义的类型、函数、常量、类常量、方法和属性诊断,而之前在 1.2 中只有未定义的变量诊断。

一些框架的编写方式为用户提供了方便的快捷方式,但使得静态分析引擎难以发现运行时可用的符号。

https://github.com/barryvdh/laravel-ide-helper 这样的存根生成器有助于填补这里的空白,将其与 Laravel 一起使用将通过提供可以轻松发现的符号的具体定义来处理许多错误诊断。

尽管如此,PHP 是一种非常灵活的语言,根据代码的编写方式,可能还有其他错误的未定义符号实例。出于这个原因,从 1.3.3 开始,intelephense 有配置选项来启用/禁用每个类别的未定义符号,以适应工作空间和编码风格。

These options are: intelephense.diagnostics.undefinedTypes intelephense.diagnostics.undefinedFunctions intelephense.diagnostics.undefinedConstants intelephense.diagnostics.undefinedClassConstants intelephense.diagnostics.undefinedMethods intelephense.diagnostics.undefinedProperties intelephense.diagnostics.undefinedVariables

将所有这些设置为 false 除了 intelephense.diagnostics.undefinedVariables 将给出版本 1.2 的行为。查看 VSCode 设置 UI 并搜索 intelephense

原文由 bmewburn 发布,翻译遵循 CC BY-SA 4.0 许可协议

我发现的唯一可行的解决方案是:

将语言模式设置为 Blade(使用扩展名: Laravel Blade formatter )它将解决问题。否则,请遵循此程序。

这些类在工作区中不存在。 Laravel 在运行时创建它们。因此,它们被报告为未定义。解决方案是提供存根定义

https://github.com/barryvdh/laravel-ide-helper

或关闭诊断 (intelephense.diagnostics.undefinedTypes)。

原文由 Ahsan Najam 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题