在VSCode的Intelephense中出现了未定义类型'Imagick'

33

我遇到了一个问题,我通过Pecl安装了Imagick,但Intelephense不知道如何处理该扩展名,并且无法显示任何代码提示,尽管该扩展已经在php.ini文件中正确安装并正常工作。
以下是一些截图以带来更清晰的理解:

  1. 使用Imagick的代码
  2. Bash输出显示imagick扩展在php.ini中已安装:
ddruganov@MBP-Demid:~$ php -i | grep imagick
imagick
imagick module => enabled
imagick module version => 3.4.4
imagick classes => Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator, ImagickKernel
imagick.locale_fix => 0 => 0
imagick.progress_monitor => 0 => 0
imagick.skip_version_check => 0 => 0
  1. 显示扩展名所在位置的 Bash 输出:
ddruganov@MBP-Demid:~$ mdfind imagick.so
/usr/local/lib/php/pecl/20190902/imagick.so

2
如果您复制粘贴代码/ shell 文本,将更容易阅读,同时保持帖子上下文和可搜索性。 - reallynice
1个回答

88

原来Intelephense才没有配置知道这个扩展的内容。
解决方法非常简单:

  1. 进入VSCode中的Intelephense扩展设置
  2. 进入一个名为'Intelephense: Stubs'的设置
  3. 添加一个名为'imagick'的新项
  4. 保存并关闭设置(虽然我相信它们会自动保存)
  5. 完成

完成所有操作后,Intelephense会显示关于Imagick的所有信息,并且自动完成功能也可以正常工作:证明

希望这能帮助到某些人!


1
谢谢,运行得很顺利。只需在php.stubs中添加MongoDB(我正在使用@ext:DEVSENSE.phptools-vscode),就可以消除与MongoDB扩展类相关的所有警告,并开始获得有关所有内容的类型提示,包括MongoDB扩展。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接