Учебники

Phalcon — объект документа Mapper

Прежде чем начать с концепций Object Relational Mapper (ORM) и Object Document Mapper (ODM), важно понять разницу между базами данных SQL и NoSQL.

В следующей таблице приведены различия между SQL и NoSQL.

SQL NoSQL
Они также называются реляционными базами данных (RDBMS) Они называются нереляционной или распределенной базой данных.
Структура базы данных состоит из таблиц и представлений Он состоит из баз документов и графических баз данных.
Включает предопределенную схему Имеет динамическую схему
Это очень мощный инструмент для определения и обработки данных Это мощный в поддержании данных как сбор документов

Phalcon имеет возможность сопоставления с базами данных SQL и NoSQL. Это достигается с помощью Object Document Mapper (ODM) для базы данных NoSQL и Object Relational Mapper (ORM) для базы данных SQL.

В Phalcon концепция ORM заключается в создании модели, связанной с данным именем таблицы, как мы видели в предыдущих главах. Он следует всем ограничениям ссылочной целостности.

Картографирование объектных документов (ODM)

Это объект, связанный с базой данных NoSQL. Как следует из названия, он отображает связанный с документом модуль. Phalcon использует его для сопоставления с базами данных, такими как MongoDB.

пример

Шаг 1 — Создайте базу данных MongoDB с именем «test» . Мы будем использовать эту базу данных для сопоставления и получения соответствующего ответа.

Тестовое задание

Монго

Шаг 2 — Проверьте наличие вставленных записей в базе данных. Команда, связанная с этим —

db.collection.find() 

Вставленные записи

Замечено, что каждый документ отображается с ObjectId, который является функцией ODM. Значение ObjectId является уникальным и впоследствии используется для извлечения всех данных, хранящихся в отношении этого конкретного Id.

Шаг 3 — Настройте модель для созданной базы данных. Модель — это класс, который расширяет Phalcon \ Mvc \ Collection . Модель test.php будет включать следующий код.

<?php 
use Phalcon\Mvc\Collection;  

class Test extends Collection { 
   public function initialize() { 
      $this->setSource("test"); 
   } 
} 

Шаг 4 — Настройте проект, включая подключение к базе данных в services.php .

// Simple database connection to localhost 

$di->set( 
   "mongo", 
   function () { 
      $mongo = new MongoClient();  
      return $mongo->selectDB("test"); 
   }, 
   true 
); 

// Connecting to a domain socket, falling back to localhost connection 

$di->set( 
   "mongo", 
   function () { 
      $mongo = new MongoClient( 
         "mongodb:///tmp/mongodb-27017.sock,localhost:27017" 
      );  
      return $mongo->selectDB("test"); 
   }, 
   true 
);

Шаг 5 — Распечатайте значения относительно ObjectId с помощью TestController.php .

<?php  

use Phalcon\Mvc\Controller;  

class TestController extends Controller { 
   public function index() { 
      // Find record with _id = "5087358f2d42b8c3d15ec4e2" 
      $test = Test::findById("5819ab6cfce9c70ac6087821"); 
      echo $test->data; 
   } 
} 

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