【问题标题】:How to define an undefined function in intelephense (in VSCode)?如何在 intelephense 中定义一个未定义的函数(在 VSCode 中)?
【发布时间】:2021-01-31 17:39:21
【问题描述】:

Intelephense 显示“未知类型”和“未知功能”等错误,但我不知道如何修复它们。

我的项目(一个 TYPO3 作曲家安装)有一个“公共”文件夹,这就是为什么我通过将其设置为 ./public 来相应地配置 intelephense 的 intelephense.environment.documentRoot 选项。

第一个屏幕截图显示了项目的页面树,其中打开了一个部分,其中发生了错误。

当我打开“function.php”时,intelephense 通知我“未定义类型 'Aimeos\Map'”:

Map 在 Map 中的 function.php 文件旁边定义,如下所示:

代码中还有其他地方,intelephense 告诉我“未定义函数'map'”:

我查看了 intelephense 的“函数”模板,但我不知道该放什么。如果我还必须定义一个类模板和/或其他任何东西,也不是。

这是我对 intelephense 的 VSCode 配置:

可以看出,我尝试使用否定符“!”排除“vendor/aimeos”文件,但我认为这不是 intelephense 中的已知配置值。

我必须做些什么才能使 intelephense 正常工作? 谢谢!

【问题讨论】:

  • 我对 VSCode/Intelephense 几乎一无所知,但 that answer 对类似问题似乎暗示(最近添加的)功能有很多问题。
  • 谢谢!那里有很多有价值的信息! “供应商”不能被禁用 - 这是一回事。但是随后会发生很多无用的文件索引,由于性能原因,我想抑制这些索引。仍然需要弄清楚,我的存根必须是什么样子以及放置它们的位置......
  • 我建议将 documentRoot 设置为上一级并排除所有不需要的目录,如 node_modules 但仍保留供应商目录。否则,像 ViewHelpers 这样的很多东西也不会显示正确的信息

标签: php visual-studio-code typo3 intelephense


【解决方案1】:

即使在添加了适当的使用声明后,我也收到了这些警告。对我来说,我必须打开供应商文件夹中声明这些类型的文件,然后保存有问题的文件。这似乎以某种方式触发了 intelephense 类型解析机制,并且警告消失了。一旦 intelephense 识别出它们,您就可以安全地从供应商文件夹中关闭这些文件。我尝试关闭 vs 代码并重新打开它,但仍然没有警告。您的里程可能会有所不同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-27
    • 2020-04-27
    • 2022-12-12
    • 2022-11-12
    • 2023-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多