在Laravel5中有没有一种不用ORM就可以使用MongoDB的方法?
基本上,我认为雄辩(就此而言,任何ORM)都是开销,因为MongoDB本身处理文档对象。 我希望将本机PHP MongoDB代码与应用程序范围的数据库连接对象一起使用,以获得更高的性能。在Laravel5中有没有一种不用ORM就可以使用MongoDB的方法?,mongodb,laravel-5,Mongodb,Laravel 5,基本上,我认为雄辩(就此而言,任何ORM)都是开销,因为MongoDB本身处理文档对象。 我希望将本机PHP MongoDB代码与应用程序范围的数据库连接对象一起使用,以获得更高的性能。 有什么库或简单的方法可以实现这一点吗?我读了一些东西,并使用了带有自定义“模型”代码的PHP MongoDB驱动程序,基类如下: AppModel.php <?php namespace App; use MongoClient; use MongoId; use Log; class AppMod
有什么库或简单的方法可以实现这一点吗?我读了一些东西,并使用了带有自定义“模型”代码的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 ..
}
是否有任何东西阻止您在Laravel应用程序中使用该标准?这是大多数PHP ODM/ORM构建的官方支持的驱动程序。事实上,我最终也这么做了。谢谢
<?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;
}
}