PHP Mongo DB Class' MongoDB \ Collection'未找到

时间:2016-01-19 03:11:04

标签: php mongodb

我使用http://docs.php.net/manual/en/mongodb.tutorial.library.php,当我使用他们提供的示例时,我得到PHP Fatal error: Class 'MongoDB\Collection' not found。我正在使用作曲家,即使没有require mongodb\mongodb我得到一个MongoDB\Driver\Manager Object如果我打印$经理表明它正在使用一个MongoDB它不是我和#的那个# 39;已安装(因为它未安装,至少通过作曲家安装)。

有没有想过找到MongoDB或解决我的问题?

解决: 因为我是从命令行而不是从Luracast / Restler使用它,所以我需要在命令行期间在构造上要求自动加载

namespace NES\Utils;

use MongoDB;

class Mongo
{

    private $manager;
    private $collection;
    public $result;

    function __construct($collection)
    {
        require_once "../../vendor/autoload.php";

        $this->manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
        $this->collection = new MongoDB\Collection($this->manager,"nestories.queue");
        $result = $this->collection->find( [ 'teste' => 'teste'] );

        print_r($result);
        }
}

此致

1 个答案:

答案 0 :(得分:1)

你在项目中使用的是作曲家自动加载吗?另外,您使用命名空间吗?使用Composer mongo包的另一种方法是为Mongo安装PECL扩展: https://pecl.php.net/package/mongo

如果您使用PECL扩展程序,则需要确保在每个环境中安装它。

您遇到的错误很可能是因为您没有正确包含供应商autoload.php文件。

<?php
require 'vendor/autoload.php';

当您尝试包含该文件时,您的错误日志输出说了什么?如果您正在使用xdebug,它将转储大量内容,但通常您应该无法包含文件&#39; /path/to/incorrect/file/name.php'错误。