最近開發過程中被詢問到VS code不能識別PHP引用類該怎么解決的問題,我當時就想,不是吧?不是吧?那么強大的VS code 不會還有人沒有上手的吧?難道真的會有人被這種問題勸退‘忍痛割愛’嘛??是時候要退回到phpstrom那種萌新IDE重新忍受界面慢吞吞的時候了嗎??不,21世紀的使用者要的是絲滑,不是蒙圈,拒絕卡頓。廢話少說~~下面就帶大家一起解決這一問題
首先我們要知道VS code的強大,正是依托於其對於各種擴展插件的良好支持。
實際上VS code功能豐富是個美好的錯覺,因為大部分針對特定編程語言和技術的功能都是第三方插件提供的,VS Code的核心始終非常精簡。正因此在很多時候,VS code的提示報錯並不是真正的代碼錯誤,只是某些插件解析不同編程語言,和版本所帶來的問題。而這些插件擴展誤報的錯誤除了讓人看着不爽之外,其實並不影響代碼正常的運行。像這種的問題很多只需要停用相關不必要的插件即可解決問題。
如上 :我們實例化一個Memcache類,提示中便是PHP Intelephense插件的報錯。常見的問題以及解決方法如下
1:PHP Intelephense版本原因
解決方法:
進入插件管理面板,選擇PHP Intelephense插件,此時可能看到的是1.7.1版本的。
選擇安裝其他版本->1.2.3,安裝完畢后,重啟一下編輯器。
問題即可解決。
2:確定的誤報錯誤
解決方法:
在插件界面找到PHP Intelephense的插件的設置小齒輪圖標,找到extension settings也就是插件設置。把檢測Undefined Methods和Undefined Types兩項功能取消勾選。把報錯的文件關掉重新加載, 解決。
3:環境問題
解決方法
打開PHP Intelephense插件設置界面,找到上方搜索框,查找關鍵字Stubs->點擊Add Item->選項中找到yaf->點擊OK
這個方案需要細致調試本地環境,一些Yaf中特殊的寫法會引起IDE提示莫名的語法錯誤,例如控制器中的assign語法的參數問題。一般情況下,我們不使用這個方案。除非為了避免觸發誤報bug而修改生產代碼。
4:PHP Intelephense智能感知,沒有添加相應擴展
解決方法
在插件界面找到PHP Intelephense的插件的設置小齒輪圖標,找到extension settings也就是插件設置,找到 Intelephense: Stubs,然后手動添加Intelephense無法感應到的類,如下圖(此方法僅官方支持的擴展有效,自定義類文件可是不能添加的)即可解決問題。
最終效果
了解更多可以關注 我的語雀 哦!來這里找找看有沒有你想要的答案呢?每天更新 新的知識點,細節中!