VS Code當中的php插件php Intelephense不能識別YAF框架語法的解決

字號+ 編輯: 国内TP粉 修訂: 种花家 來源: 2023-09-12 我要說兩句(3)

2019年12月份開啓自動更新vs code插件的小夥伴會發現php intelephense用起來很蹩腳,各種提示報錯,原因爲何?

2019年12月份PHP Intelephense作者Ben Mewburn在冬日饥寒交迫之际,闲的蛋疼想出一个馊点子: 逼大伙交钱购买他的收费版:搞一刀切,像YAF这种编译类的框架使用起来提示报错。

是时候要退回到phpstrom那种萌新IDE重新忍受界面慢吞吞的时候了吗?不,9102年的使用者要的是丝滑,不是卡顿。

解决方法一

进入插件管理面板,选择PHP Intelephense插件,此时可能看到的是1.7.1版本的。

选择安装其他版本->1.2.3,安装完毕后,重启一下编辑器。

问题解决。

解决方案二

这个办法比上一个麻烦。

在插件界面找到PHP Intelephense的插件的设置小齿轮图标,找到extension settings也就是插件设置。把检测Undefined Methods和Undefined Types两项功能取消勾选。把报错的文件关掉重新加载, 解决。

This method is pretty troublesome than the last one.

Please find the extension settings icon on the mod button of "PHP Intelephense". Then cancel the relevant diagnostic functionality of methods & types. Will be OK after script file reloading.

 截屏2021-03-29 下午10.38.35.jpg

解决方案三

打开PHP Intelephense插件设置界面,找到上方搜索框,查找关键字Stubs->点击Add Item->选项中找到yaf->点击OK按钮。

经过实际测试,一些Yaf中特殊的写法会引起IDE提示语法错误,例如控制器中的assign语法的参数问题。一般情况下,我们不使用这个方案。除非为了避免触发误报bug而修改生产代码。

解决方案四

请卸载php intelephense, php Xdebug之类有冲突的插件, 在vscode左侧插件模块中搜索php tools, 安装。这个插件集成了phpintelephense xdebug, 所以请不要重复安装。作者一直嚷着要收费license, 你可以不交钱,照样用。

接下来重头戏来了,在你项目的根目录创建一个.editorconfig文件。填写类似以下的配置:

[*.php]
php_diagnostic_php0413 = false
php_diagnostic_php0416 = false
php_diagnostic_php0418 = false
php_diagnostic = true

保存。

感兴趣的兄弟可以试试,这个时候有人不免要问了:你这0413,0416怎么来的?

很简单,你安装完了插件,会在problems中发现代码里多出各种语法错误、警告、报错信息, 每条信息,后面都带着一个小尾巴,写着错误代码PHP(PHPXXXX) [LnXXXXX, Col XX]都需要你根据你自己的项目报错的类型来进行判断,自行决定该不该无视掉。当然了,如果你是大佬,一个报错信息都没有,那说明你很优秀的啦~ 小编要不要给你来个三连?

解决方案五

还是要安装php tools这个插件, 安装完毕后, 再打开vscode当中的settings.ini文件。settings.ini文件可以在里面追加一些配置:

"php.problems.exclude" : {
  "/" : [406, 413, 418]
}

观察一下效果。这一段配置的解释是, 对当前项目工作区的所有文件, 跳过php0406, php0413, php0418的错误检查。笔者有时候会发现yaf项目中蹦出一个错误检查器自己生成的临时只读文件embeded.html不断地报错, 就可以通过这个方法解决。

发现更新后的vscode不能使用右键Go to Defination/Go to Implementations追踪到函数定义了

土办法, 先把方法、函数名称Ctrl+C复制一下, 然后鼠标左键点击左边的类, 进到类文件中, 然后Ctrl+F搜索方法就ok啦? 开玩笑,这是无法接受的。

请使用解决方案四、五。

閲完此文,您的感想如何?
  • 有用

    8

  • 沒用

    1

  • 開心

    0

  • 憤怒

    0

  • 可憐

    0

1.如文章侵犯了您的版權,請發郵件通知本站,該文章將在24小時内刪除;
2.本站標注原創的文章,轉發時煩請注明來源;
3.交流群: 2702237 13835667

相關課文
  • mac開發接入微信公衆號接口返回報錯 cURL error 56: SSLRead() return error -9806

  • PHP的換行符是什麽

  • pecl安裝程序時報錯Array and string offset access syntax with curly braces is no longer supported

  • 由於商家傳入的H5交易參數有誤,該筆交易暫時無法完成,請聯繫商家解決

我要說說
網上賓友點評
1 樓 IP 117.32.***.145 的嘉賓 说道 : 很久前
根本不用这么麻烦. 只是 Intelephense插件的扩展提示功能没有载入yaf罢了. Intelephense配置中找到 Stubs 这个列表, 添加上yaf 就有代码提示了 根本不用降插件版本或者关闭查错提醒 不要再转载别的地方的文章了. 我百度了一下基本全是你们这俩种方案.不要再误导其他人了

2 樓 IP 114.242.***.111 的嘉賓 说道 : 很久前
1楼大佬没用过yaf吗?你的意思是说,需要让IDE误报,然后看满屏的红字嗨起来?

3 樓 IP 111.192.***.152 的嘉賓 说道 : 很久前
如此,不如用phpstorm,淘宝破解一大堆