经过多次来来去去,我设法安装了适用于 PHP 5.6 的 MongoDB 驱动程序,并使其在 OSX El Capitan 上运行。 (它的工作方式是使用 Homebrew)
为了开始处理项目,我为项目创建了文件夹,并使用 Composer 安装了我需要的包。在这些包之间,我需要 mongodb/mongodb,这是推荐的 mongo php library由 the php Manual 使用在线和在the driver github page .
我发现的问题是 Eclipse 正在解析\MongoDB\命名空间中的类,而不是\MongoDB\BSON\命名空间中的类。如果我检查安装在 vendor 文件夹中的 Composer,我可以看到\MongoDB\BSON\类实际上丢失了。另一方面,如果我在包含 PHP 的网络服务器中运行该程序,它会按预期执行。
所以我的问题是 Eclipse 可以做什么或我缺少什么来找到丢失的类。它们是否在其他地方定义?
如果这是不可能的,因为它们被编译成一个二进制库,而我无法解决它们,有什么办法可以让 Eclipse 不将这些特定类显示为错误?
类在网络服务器中运行正常,但在 Eclipse 中被突出显示为错误的示例:
$fecha_creacion = new MongoDB\BSON\UTCDateTime();
最佳答案
阅读 this post并没有找到关于这个主题的任何更新我得出的结论是驱动程序的开发人员不提供 php 源并将它留给 IDE 开发人员以 IDE 可以识别的方式为驱动程序的不同功能提供 stub 函数并提供语法检查和文档弹出窗口。
关注此question ,我终于找到了一个 JetBrains GitHub,其中有许多不同的 PHPStrom stub ,这 one其中。
所以我复制了文件并将其作为源代码的一部分添加到我的项目中。这解决了我的问题。
关于php - 如何让 Eclipse 解析 MongoDB\BSON 命名空间中的 php 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45316371/