Огляд архітектури

У цьому розділі пояснюється, як різні частини PHP-драйвера поєднуються один з одним, від базових системних бібліотек, через PHP-модулі до PHP-бібліотек на самому верху.

Схема архітектури PHP-драйвера.
Найнижчий рівень драйвера - це системні модулі: libmongoc, libbson та libmongocrypt.
Середній рівень – це PHP-модуль MongoDB, написаний мовою Сі.
Верхній рівень - це користувальницьке оточення PHP,
PHP-модуль MongoDB та високорівневі пакети: фреймворки та програми.

Наверху стека расположена» бібліотека PHP, яка поширюється у вигляді » пакета Composer. Ця бібліотека надасть API, узгоджений з іншими » драйверами MongoDB, і реалізує міждрайверні » специфікації. Хоча модуль можна використовувати безпосередньо, бібліотека дає мінімальні накладні витрати і має бути загальною залежністю для більшої частини додатків, побудованих з MongoDB.

На рівень нижче бібліотеки розташовується PHP-модуль, який розповсюджується через репозиторій » PECL. Модуль утворює сполучний прошарок між PHP і системними бібліотеками (» libmongoc » libbson і » libmongocrypt). Цей публічний API пропонує тільки саму базову функціональність:

  • Управління з'єднанням
  • BSON кодування та декодування
  • Серіалізація документа об'єкта (для підтримки бібліотек ODM)
  • Виконання команд, запити та запис операцій
  • Обробка курсорів для команд та результатів запиту

Вихідний код драйвера та проекти JIRA

ПроектGitHubJIRA
PHP бібліотека» mongodb/mongo-php-library» PHPLIB
PHP-модуль» mongodb/mongo-php-driver» PHPC