2015-05-11 3 views
1

В принципе, я вижу Красноречивый (если на то пошло, любой ORM) как накладные расходы, поскольку MongoDB сам занимается документами. Я ищу, чтобы использовать собственный код PHP MongoDB с расширенным подключением к базе данных приложения для большей производительности. Любая библиотека или простой способ достичь этого?Есть ли способ использовать MongoDB без ORM в Laravel 5?

+1

Есть ли что-нибудь, препятствующее вам использовать стандартный [PHP MongoDB driver] (http://docs.mongodb.org/ecosystem/drivers/php/) в вашем приложении Laravel? Это официально поддерживаемый драйвер, на котором основано большинство ODM/ORM PHP. – Stennie

+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; 
    } 

} 
0

Там много MongoDB ODM. Если я перечисляю несколько

Я только попробовал несколько вещей с MongoDB-ODm по doctorine раньше.

+0

Это еще больше накладных расходов. На самом деле, решение, которое я ищу, - это хранить данные, наиболее близкие к MongoDB. Структура массива велика. Преобразование его в объект не дает большого прогресса, на мой взгляд. –

Смежные вопросы