基本上,我认为Eloquent(就此而言,任何ORM)都是开销,因为MongoDB本身处理文档对象。 我希望使用本机PHP MongoDB代码与应用程序范围的数据库连接对象,以获得更好的性能。 任何图书馆或实现这一目标的简单方法?
答案 0 :(得分:2)
我已经阅读了一些内容,并使用PHP MongoDB驱动程序和自定义“模型”代码,基类如下所示:
AppModel.php
<?php
namespace App;
use MongoClient;
use MongoId;
use Log;
class AppModel {
public $collection;
public function __construct() {
$mongo = new MongoClient();
$model_name = (new \ReflectionClass($this))->getShortName();
$collection_name = str_plural(strtolower($model_name));
$this->collection = $mongo->selectCollection('proj_zabbit', $collection_name);
}
public function findById($id) {
return $this->collection->findOne(array(
'_id' => new MongoId($id)
));
}
// more wrapper functions ..
}
扩展模型类:
<?php
namespace App;
class Message extends AppModel {
}
在控制器中:
<?php namespace App\Http\Controllers;
use App\Message;
class MessagesController extends Controller {
public function __construct()
{
$this->Message = new Message;
}
public function get()
{
$id = Input::get('id');
$message = $this->Message->findById($id);
return $message;
}
}