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.
解决方案三
打开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啦? 开玩笑,这是无法接受的。
请使用解决方案四、五。
2 楼 IP 114.242.***.111 的嘉宾 说道 : 很久前
3 楼 IP 111.192.***.152 的嘉宾 说道 : 很久前