我正在尝试使用客户端库https://github.com/mongodb/mongo-php-library/blob/master/docs/tutorial/install-php-library.txt从drupal连接到mongo。 我下载了源代码。现在我想在.module文件中使用它
模块内的 myModule
目录结构 -
- / MongoDB(库的src文件夹)
- myModule.module
- myModule.info
内部myModule.module
文件 -
function my_autoloader($class) {
print_r($class);
include DRUPAL_ROOT.'/sites/all/modules/myModule/MongoDB/' . $class . '.php';
}
spl_autoload_register('my_autoloader');
function myModule_init() {
//sample code to connect to mongo
$client = new MongoDB\Client("mongodb://xx.xx.xx.xx:27017");
$collection = $client->demo->beers;
$result = $collection->insertOne( [ 'name' => 'Hinterland', 'brewery' => 'BrewDog' ] );
echo "Inserted with Object ID '{$result->getInsertedId()}'";
}
我收到错误
Fatal error: Class 'MongoDB\Client' not found
我做错了什么。任何想法???
注意:我尝试使用此
时能够连接 $m = new MongoDB\Driver\Manager("mongodb://xx.xxx.xx.xx:27017");
echo "Connection to database successfully";
但为什么不使用客户端???
答案 0 :(得分:0)
问题是print_r($class);
正在提供类似MongoDB\Client\
的输出(名称空间格式),
然后我不得不用/使用
$class = str_replace('\\', '/', $class);
并从网址中删除MongoDB
仍然不知道它给出MongoDB\Client\