<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/mongodb.architecture.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ru',
  ),
  'this' => 
  array (
    0 => 'mongodb.overview.php',
    1 => 'Архитектура',
    2 => 'Обзор архитектуры',
  ),
  'up' => 
  array (
    0 => 'mongodb.architecture.php',
    1 => 'Архитектура и внутреннее устройство драйвера',
  ),
  'prev' => 
  array (
    0 => 'mongodb.architecture.php',
    1 => 'Архитектура и внутреннее устройство драйвера',
  ),
  'next' => 
  array (
    0 => 'mongodb.connection-handling.php',
    1 => 'Соединения',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ru',
    'path' => 'reference/mongodb/architecture.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="mongodb.overview" class="section">
  
  <h2 class="title">Обзор архитектуры</h2>

  <p class="para">
   Раздел объясняет, как разные части PHP-драйвера сочетаются
   друг с другом, от базовых системных библиотек, через PHP-модули и до
   PHP-библиотек на самом верху.
  </p>

  <p class="para">
   <div class="mediaobject">
    
    <div class="imageobject">
     <img src="images/f3bc48edf40d5e3e09a166c7fadc7efb-driver_arch.svg" alt="
     Схема архитектуры PHP-драйвера MongoDB.
     Самый низкий уровень драйвера — системные модули: libmongoc, libbson и libmongocrypt.
     Средний уровень — PHP-модуль MongoDB.
     Верхний уровень — пользовательское PHP-окружение,
     которое включает PHP-модуль MongoDB и пакеты более высокого уровня наподобие фреймворков и приложений.
    " width="625" height="450" />
    </div>
   </div>
  </p>

  <p class="para">
   Наверху стека расположена
   <a href="https://github.com/mongodb/mongo-php-library" class="link external">&raquo;&nbsp;библиотека PHP</a>, которая распространяется
   в виде <a href="https://packagist.org/packages//mongodb/mongodb" class="link external">&raquo;&nbsp;пакета Composer</a>.
   Эта библиотека предоставит API, согласованный с другими
   <a href="https://www.mongodb.com/docs/drivers/" class="link external">&raquo;&nbsp;драйверами</a> MongoDB,
   и реализует междрайверные
   <a href="https://github.com/mongodb/specifications" class="link external">&raquo;&nbsp;спецификации</a>.
   Хотя модуль можно использовать напрямую, библиотека даёт минимальные накладные расходы
   и должна быть общей зависимостью для большей части приложений, построенных с MongoDB.
  </p>

  <p class="para">
   На уровень ниже библиотеки располагается PHP-модуль, который распространяется
   через репозиторий <a href="https://pecl.php.net/package/mongodb" class="link external">&raquo;&nbsp;PECL</a>.
   Модуль образует связующую прослойку между PHP и системными библиотеками
   (<a href="https://github.com/mongodb/mongo-c-driver" class="link external">&raquo;&nbsp;libmongoc</a>,
   <a href="https://github.com/mongodb/mongo-c-driver/tree/master/src/libbson" class="link external">&raquo;&nbsp;libbson</a>
   и <a href="https://github.com/mongodb/libmongocrypt" class="link external">&raquo;&nbsp;libmongocrypt</a>).
   Этот публичный API предлагает только самую базовую функциональность:

   <ul class="simplelist">
    <li>Управление соединением</li>
    <li>BSON кодирование и декодирование</li>
    <li>Сериализация документа объекта (для поддержки библиотек ODM)</li>
    <li>Выполнение команд, запросы и запись операций</li>
    <li>Обработка курсоров для команд и результатов запроса</li>
   </ul>
  </p>

  <p class="para">
   <table class="doctable table">
    <caption><strong>Исходный код драйвера и проекты JIRA</strong></caption>
    
     <thead>
      <tr>
       <th>Проект</th>
       <th>GitHub</th>
       <th>JIRA</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>PHP библиотека</td>
       <td><a href="https://github.com/mongodb/mongo-php-library" class="link external">&raquo;&nbsp;mongodb/mongo-php-library</a></td>
       <td><a href="https://jira.mongodb.org/browse/PHPLIB" class="link external">&raquo;&nbsp;PHPLIB</a></td>
      </tr>

      <tr>
       <td>PHP-модуль</td>
       <td><a href="https://github.com/mongodb/mongo-php-driver" class="link external">&raquo;&nbsp;mongodb/mongo-php-driver</a></td>
       <td><a href="https://jira.mongodb.org/browse/PHPC" class="link external">&raquo;&nbsp;PHPC</a></td>
      </tr>

     </tbody>
    
   </table>

  </p>
 </div><?php manual_footer($setup); ?>