【问题标题】:How to have eclipse resolve php classes in MongoDB\BSON namespace?如何让 Eclipse 解析 MongoDB\BSON 命名空间中的 php 类?
【发布时间】:2017-07-26 02:21:59
【问题描述】:

经过多次来来去去,我设法安装了 PHP 5.6 的 MongoDB 驱动程序,并使其在 OSX El Capitan 上运行。 (它的工作方式是使用 Homebrew

为了开始一个项目,我为项目创建了文件夹,并使用 Composer 安装了我需要的所需包。在这些包之间,我需要 mongodb/mongodb 这是推荐的mongo php librarythe php Manual 在线和the driver github page 使用。

我发现的问题是 Eclipse 正在解析 \MongoDB\ 命名空间中的类,而不是 \MongoDB\BSON\ 命名空间中的类。如果我检查 vendor 文件夹中安装的 Composer 的内容,我可以看到 \MongoDB\BSON\ 类实际上丢失了。另一方面,如果我在包含 PHP 的网络服务器中运行程序,它会按预期执行。

所以我的问题是如何让 Eclipse 找到丢失的类,或者我缺少什么。它们是在其他地方定义的吗?

如果这是不可能的,因为它们被编译成二进制库并且我无法解决它们,有没有办法让 Eclipse 不将这些特定类显示为错误?

在网络服务器中运行正常但在 Eclipse 中突出显示为错误的类示例:

$fecha_creacion  = new MongoDB\BSON\UTCDateTime();

【问题讨论】:

  • 你能在你的项目文件夹中搜索 MongoDB\BSON 吗?它可能在另一个包中 - 不是您正在查看的包,并且 eclipse 没有将封闭文件夹识别为 PSR 命名空间根目录。
  • 供应商文件夹结构良好,我检查了 mongodb 文件夹,这些类不存在。
  • 是的。另一个文件夹,甚至可能在供应商树之外,也完全有可能拥有这些文件。我只是建议在你的所有项目文件中搜索 BSON 命名空间,看看它是否在你(和 eclipse)不期望的地方。

标签: php mongodb-php


【解决方案1】:

阅读this post 并没有找到关于该主题的任何更新我得出的结论是,驱动程序的开发人员不提供 php 源代码,而是让 IDE 开发人员为驱动程序的不同功能提供 STUB IDE 可以识别函数并提供语法检查和文档弹出窗口的一种方式。

question 之后,我最终找到了一个 JetBrains GitHub,其中有许多不同的 PHPStrom 存根,其中one

所以我复制了该文件并将其作为源代码的一部分添加到我的项目中。这解决了我的问题。

【讨论】:

  • 感谢您回来回答您自己的问题,这对我很有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-11
  • 2014-05-23
  • 2019-12-23
  • 1970-01-01
  • 1970-01-01
  • 2013-04-30
相关资源
最近更新 更多