我使用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);
}
}
此致
答案 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'错误。