Как подружить фреймворк Laravel c MongoDb?

Как подружить фреймворк Laravel c MongoDb?

От автора: так сложилось, что современные тенденции веб-разработки направлены на тотальное усложнение интернет-проектов. Сейчас уже не встретить сайт, на котором представлены страницы с простой текстовой информацией. Вместо того мы наблюдаем сложнейшие интернет порталы, которые манипулируют огромнейшим количеством все возможной информации, как текстовой, так и мультимедийной. И я сейчас не говорю о визуальной составляющей и обилия всевозможных скриптов, которые выполняются на клиентской стороне.

скачать исходники

Все это приводит к тому, что помимо основного функционала, при разработке, довольно остро стоит вопрос быстродействия проекта, ведь современные фреймворки и CMS в виду своей тотальной универсальности довольно требовательны к серверу и не так уж и быстры.

Поэтому сейчас все чаще, мы с Вами, встречаем такие слова как оптимизация, кеширование и не реляционные базы данных или же No SQL. Причем последние по сравнению с реляционными базами данных работают несколько быстрее и обладают хорошей масштабируемостью. Поэтому в текущем уроке, мы с Вами поговорим о том, как же подружить один из лидирующих фреймворков в данное время Laravel, с ярким представителем баз NoSql – Mongo DB.

Кратко хотел бы отметить что MongoDB — документо-ориентированная система управления базами данных с открытым исходным кодом, не требующая описания схемы таблиц и как Вы уже догадались, относится она к NoSQL базам данных, а так же использует JSON-подобные документы и схему базы данных. Собственно, что касается теории, то в этом уроке мы будем заниматься только практикой и подробно останавливаться на основах по работе с СУБД MongoDB не будем, так как это не тема данного урока, да и для этого, нужен полноценный миникурс.

Итак, для работы, конечно же, нам потребуется установленная система управления базами данных. Я использую на локальном компьютере сборку OpenServer, а значит, указанная СУБД уже установлена и готова к работе. Так же нам понадобится установленный фреймворк Laravel и для наглядности я установил инструмент MongoDB Compass, который очень удобен для работы с MongoDb.

Как подружить фреймворк Laravel c MongoDb?

Фреймворк Laravel, из “коробки” не поддерживает работу с указанной базой данных, а значит, нам потребуется дополнительное расширение, благодаря которому, мы сможем работать с ней, используя стандартные средства фреймворка. Поэтому по ссылке, Вы как раз найдете подходящий пакет, а значит, используя консоль и находясь в папке фреймворка, вводим следующую команду для установки расширения:

Затем, в файл config/app.php, добавляем сервис провайдер, установленного расширения:

Далее необходимо настроить подключение к базе данных, потому как по умолчанию используется mysql, поэтому в файл config/database.php, добавляем следующие строки кода:

И наконец, в файл локальной конфигурации .env, внесем следующие изменения.

Теперь настройка полностью завершена, а значит для проверки, давайте применим доступные миграции, тем самым убедимся, что расширение успешно работает.

После выполнения команды, мы увидим, что в базе данных были созданы необходимые документы.

Как подружить фреймворк Laravel c MongoDb?

Собственно теперь мы можем работать с базой данных, используя привычные, нам методы по выборке и добавлению данных. Однако для этого все классы моделей, которые Вы используете, должны наследоваться от специального класса use Jenssegers\Mongodb\Eloquent\Model. К примеру, вот таким образом:

Так же обратите внимание, что в свойстве $collection, Вы можете определять документ, с которым будет работать конкретная модель. Теперь для начала, давайте добавим некоторую информацию в базу данных:

Для выборки данных можем использовать одно из выражений:

Точно так же как и в реляционных базах данных, Вы можете формировать связи между моделями, используя все те же методы:

И точно так же для модели Category:

Таким образом, можно создать одну категорию.

И добавить в нее одну статью, как связующий документ.

Ну и, конечно же, выбрать записи в зависимости от наличия связанных записей можно следующим образом:

При этом результат будет следующим:

Как подружить фреймворк Laravel c MongoDb?

Вот собственно и все что я хотел сказать в этом уроке, поэтому если расширение и собственно база данных MongoDB Вас заинтересовала – практикуйтесь, набирайтесь опыта, так как это направление довольно перспективное. Всего Вам доброго и удачного кодирования!!!

Метки:

Похожие статьи:

Комментарии Вконтакте:

Комментарии (1)