<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/class.mongodb-driver-manager.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ru',
  ),
  'this' => 
  array (
    0 => 'mongodb-driver-manager.construct.php',
    1 => 'MongoDB\\Driver\\Manager::__construct',
    2 => 'Создаёт нового MongoDB-менеджера',
  ),
  'up' => 
  array (
    0 => 'class.mongodb-driver-manager.php',
    1 => 'MongoDB\\Driver\\Manager',
  ),
  'prev' => 
  array (
    0 => 'mongodb-driver-manager.addsubscriber.php',
    1 => 'MongoDB\\Driver\\Manager::addSubscriber',
  ),
  'next' => 
  array (
    0 => 'mongodb-driver-manager.createclientencryption.php',
    1 => 'MongoDB\\Driver\\Manager::createClientEncryption',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ru',
    'path' => 'reference/mongodb/mongodb/driver/manager/construct.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="mongodb-driver-manager.construct" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">MongoDB\Driver\Manager::__construct</h1>
  <p class="verinfo">(mongodb &gt;=1.0.0)</p><p class="refpurpose"><span class="refname">MongoDB\Driver\Manager::__construct</span> &mdash; <span class="dc-title">Создаёт нового MongoDB-менеджера</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-mongodb-driver-manager.construct-description">
  <h3 class="title">Описание</h3>
  <div class="methodsynopsis dc-description">
   <span class="modifier">final</span> <span class="modifier">public</span> <span class="methodname"><strong>MongoDB\Driver\Manager::__construct</strong></span>(<span class="methodparam"><span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type"><a href="language.types.string.php" class="type string">string</a></span></span> <code class="parameter">$uri</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong></span></span>, <span class="methodparam"><span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type"><a href="language.types.array.php" class="type array">array</a></span></span> <code class="parameter">$uriOptions</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong></span></span>, <span class="methodparam"><span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type"><a href="language.types.array.php" class="type array">array</a></span></span> <code class="parameter">$driverOptions</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong></span></span>)</div>

  <p class="para rdfs-comment">
   Метод создаёт новый объект <span class="classname"><a href="class.mongodb-driver-manager.php" class="classname">MongoDB\Driver\Manager</a></span> с заданными параметрами.
  </p>
  <blockquote class="note"><p><strong class="note">Замечание</strong>: 
   <span class="simpara">
    В <a href="https://github.com/mongodb/specifications/blob/master/source/server-discovery-and-monitoring/server-discovery-and-monitoring.md#single-threaded-client-construction" class="link external">&raquo;&nbsp;спецификации по обнаружению и мониторингу сервера</a>,
    этот конструктор не выполняет ввода-вывода. Соединения будут инициализироваться по требованию,
    когда выполняется первая операция.
   </span>
  </p></blockquote>
  <blockquote class="note"><p><strong class="note">Замечание</strong>: 
   <span class="simpara">
    При передаче любых URI-опций, которые связаны с SSL или TLS, через строку
    подключения или параметр
    <code class="parameter">uriOptions</code>, модуль неявно включает TLS
    при соединениях. Чтобы предотвратить это, либо явно отключают опцию
    <code class="literal">tls</code>, либо не передают никаких TLS-опций.
   </span>
  </p></blockquote>
  
<blockquote class="note"><p><strong class="note">Замечание</strong>: 
 <span class="simpara">
  На платформах Unix модуль чувствителен к сценариям, которые используют
  системный вызов fork() без последующего вызова exec(). Пользователям не рекомендуется
  переиспользовать экземпляр класса <span class="classname"><a href="class.mongodb-driver-manager.php" class="classname">MongoDB\Driver\Manager</a></span>
  в дочернем процессе.
  child process.
 </span>
</p></blockquote>

 </div>


 <div class="refsect1 parameters" id="refsect1-mongodb-driver-manager.construct-parameters">
  <h3 class="title">Список параметров</h3>
  <dl>
   
    <dt id="mongodb-driver-manager.construct-uri"><code class="parameter">uri</code></dt>
    <dd>
     <p class="para">
      URI-адрес подключения <a href="https://www.mongodb.com/docs/manual/reference/connection-string/" class="link external">&raquo;&nbsp;mongodb://</a>:
      <div class="example-contents">
<div class="txtcode"><pre class="txtcode">mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[defaultAuthDb][?options]]</pre>
</div>
      </div>

     </p>
     <p class="para">
      Параметр примет значение по умолчанию <code class="literal">&quot;mongodb://127.0.0.1:27017&quot;</code>, если аргумент не передали.
     </p>
     <p class="para">
      Подробнее о поддерживаемых URI-параметрах рассказывает раздел
      <a href="https://www.mongodb.com/docs/manual/reference/connection-string/#connections-connection-options" class="link external">&raquo;&nbsp;
       Параметры строки подключения
      </a>
      в руководстве MongoDB.
      <a href="https://www.mongodb.com/docs/manual/reference/connection-string/#connection-pool-options" class="link external">&raquo;&nbsp;
       Параметры пула подключения
      </a>
      не поддерживаются, поскольку модуль не реализует пулы подключений.
     </p>
     <p class="para">
      <code class="parameter">uri</code> — это URL, поэтому любые специальные символы в
      его компонентах должны закодированы в соответствии
      <a href="https://datatracker.ietf.org/doc/html/rfc3986" class="link external">&raquo;&nbsp;RFC 3986</a>. Это особенно
      актуально для имени пользователя и пароля, которые часто могут содержать специальные
      символы, такие как <code class="literal">@</code>, <code class="literal">:</code>, или
      <code class="literal">%</code>. При подключении через доменный сокет Unix, путь
      сокета может содержать специальные символы, например слеши, которые необходимо закодировать.
      Функция <span class="function"><a href="function.rawurlencode.php" class="function">rawurlencode()</a></span> может использоваться для кодирования
      составных частей URI-адреса.
     </p>
     <p class="para">
      Компонент <code class="literal">defaultAuthDb</code> может использоваться для указания
      имени базы данных, связанной с учётными данными пользователя; однако
      параметр URI <code class="literal">authSource</code> будет иметь приоритет, если он указан.
      Если ни <code class="literal">defaultAuthDb</code>, ни
      <code class="literal">authSource</code> не указаны, база данных <code class="literal">admin</code>
      будет использоваться по умолчанию. Компонент
      <code class="literal">defaultAuthDb</code> не имеет смысла при отсутствии учётных данных пользователя.
     </p>
    </dd>
   
   
    <dt id="mongodb-driver-manager.construct-urioptions"><code class="parameter">uriOptions</code></dt>
    <dd>
     <p class="para">
      Дополнительные
      <a href="https://www.mongodb.com/docs/manual/reference/connection-string/#connections-connection-options" class="link external">&raquo;&nbsp;параметры строки подключения</a>,
      которые будут перезаписывать любые параметры с тем же именем в параметре
      <code class="parameter">uri</code>.
     </p>
     <p class="para">
      <table class="doctable table">
       <caption><strong>uriOptions</strong></caption>
       
        <thead>
         <tr>
          <th>Название опции</th>
          <th>Тип</th>
          <th>Описание</th>
         </tr>

        </thead>

        <tbody class="tbody">
         <tr>
          <td>appname</td>
          <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
          <td>
           <p class="para">
            В MongoDB 3.4+ появилась возможность добавлять аннотации к соединениям с метаданными,
            предоставляемыми подключающимся клиентом. Эти метаданные включаются в журналы
            логирования сервера при установлении соединения, а также записываются в журналы
            медленных запросов, если включено профилирование базы данных.
           </p>
           <p class="para">
            Эта опция может использоваться для указания имени приложения, которое будет
            включено в метаданные. Значение не может превышать 128 символов.
           </p>
          </td>
         </tr>

         <tr>
          <td>authMechanism</td>
          <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
          <td>
           <p class="para">
            Механизм аутентификации, который MongoDB будет использовать для аутентификации
            соединения. Для просмотра дополнительных сведений и списка поддерживаемых
            значений, смотрите раздел
            <a href="https://www.mongodb.com/docs/manual/reference/connection-string/#urioption.authMechanism" class="link external">&raquo;&nbsp;Параметры аутентификации</a>
            в руководстве MongoDB.
           </p>
          </td>
         </tr>

         <tr>
          <td>authMechanismProperties</td>
          <td><span class="type"><a href="language.types.array.php" class="type array">array</a></span></td>
          <td>
           <p class="para">
            Свойства для выбранного механизма аутентификации. Для просмотра дополнительных сведений и списка поддерживаемых
            значений, смотрите раздел
            <a href="https://github.com/mongodb/specifications/blob/master/source/auth/auth.rst#auth-related-options" class="link external">&raquo;&nbsp;Спецификация аутентификации драйвера</a>.
           </p>
           <blockquote class="note"><p><strong class="note">Замечание</strong>: 
            <span class="simpara">
             Если не указана в строке URI-адреса, эта опция представляется
             в виде массива пар ключ-значение. Ключи и значения в этом массиве должны быть строками.
            </span>
           </p></blockquote>
          </td>
         </tr>

         <tr>
          <td>authSource</td>
          <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
          <td>
           <p class="para">
            Имя базы данных, связанное с учётными данными пользователя. По умолчанию
            используется компонент базы данных из URI-адреса соединения или база данных
            <code class="literal">admin</code>, если оба не указаны.
           </p>
           <p class="para">
            Для механизмов аутентификации, которые делегируют хранение учётных данных
            другим службам (например, GSSAPI), значение должно быть
            <code class="literal">&quot;$external&quot;</code>.
           </p>
          </td>
         </tr>

         <tr>
          <td>compressors</td>
          <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
          <td>
           <p class="para">
            Приоритетный список разделённых запятыми компрессоров,
            которые требуется использовать клиенту. Сообщения сжаты, только если
            клиент и сервер совместно используют любые компрессоры,
            а компрессор, используемый в каждом направлении,
            будет зависеть от индивидуальной конфигурации сервера или драйвера.
            Дополнительную информацию даёт страница
            <a href="https://github.com/mongodb/specifications/blob/master/source/compression/OP_COMPRESSED.rst#compressors" class="link external">&raquo;&nbsp;Спецификация компрессии драйвера</a>.
           </p>
          </td>
         </tr>

         <tr id="mongodb-driver-manager.construct-urioptions.connecttimeoutms">
          <td>connectTimeoutMS</td>
          <td><span class="type"><a href="language.types.integer.php" class="type int">int</a></span></td>
          <td>
           <p class="para">
            Время ожидания в миллисекундах при попытке соединения.
            Значение по умолчанию равно 10 000 миллисекунд.
           </p>
          </td>
         </tr>

         <tr>
          <td>directConnection</td>
          <td><span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></td>
          <td>
           <p class="para">
            Параметр управляет поведением при обнаружении набора реплик,
            если в строке подключения указали только один хост. По умолчанию
            предоставление одного члена в строке подключения
            устанавливается прямое подключение или обнаруживается дополнительное количество членов
            в зависимости от того, указали ли
            URI-параметр <code class="literal">&quot;replicaSet&quot;</code>. Укажите <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> для принудительного
            обнаружения, если опустили параметр <code class="literal">&quot;replicaSet&quot;</code>,
            или укажите <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>, чтобы форсировать прямое соединение, если
            параметр <code class="literal">&quot;replicaSet&quot;</code> указали.
           </p>
          </td>
         </tr>

         <tr>
          <td>heartbeatFrequencyMS</td>
          <td><span class="type"><a href="language.types.integer.php" class="type int">int</a></span></td>
          <td>
           <p class="para">
            Задаёт интервал в миллисекундах между проверками драйвера
            топологии MongoDB, которые отсчитываются с конца предыдущей проверки
            до начала следующей. Значение по умолчанию равно 60 000
            миллисекунд.
           </p>
           <p class="para">
            Согласно
            <a href="https://github.com/mongodb/specifications/blob/master/source/server-discovery-and-monitoring/server-discovery-and-monitoring.md#heartbeatfrequencyms" class="link external">&raquo;&nbsp;Спецификации по обнаружению и мониторингу сервера</a>,
            нельзя указывать значение меньше 500 миллисекунд.
           </p>
          </td>
         </tr>

         <tr>
          <td>journal</td>
          <td><span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></td>
          <td>
           <p class="para">
            Соответствует параметру гарантий записи <code class="parameter">journal</code>.
            Если <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>, для записи будет требоваться подтверждение от
            MongoDB, что операция была записана в журнал. Подробнее
            смотрите <span class="classname"><a href="class.mongodb-driver-writeconcern.php" class="classname">MongoDB\Driver\WriteConcern</a></span>.
           </p>
          </td>
         </tr>

         <tr>
          <td>loadBalanced</td>
          <td><span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></td>
          <td>
           <p class="para">
            Указывает, подключается ли драйвер к кластеру MongoDB через балансировщик нагрузки.
            Если <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>, драйвер может подключаться только к одному узлу (указанному либо строкой подключения, либо поиском SRV),
            параметр URI <code class="literal">&quot;directConnection&quot;</code> не может быть <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> и опция URI <code class="literal">&quot;replicaSet&quot;</code> должна быть опущена. По умолчанию <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>.
           </p>
          </td>
         </tr>

         <tr>
          <td>localThresholdMS</td>
          <td><span class="type"><a href="language.types.integer.php" class="type int">int</a></span></td>
          <td>
           <p class="para">
            Размер в миллисекундах окна задержки для выбора среди
            нескольких подходящих экземпляров MongoDB при разрешении предпочтения
            чтения. По умолчанию — 15 миллисекунд.
           </p>
          </td>
         </tr>

         <tr>
          <td>maxStalenessSeconds</td>
          <td><span class="type"><a href="language.types.integer.php" class="type int">int</a></span></td>
          <td>
           <p class="para">
            Соответствует параметру предпочтения чтения
            <code class="literal">&quot;maxStalenessSeconds&quot;</code>. Указывает в секундах, насколько
            устаревшим может быть вторичный узел в наборе реплик, прежде чем клиент перестанет
            его использовать для операций чтения. По умолчанию не задано максимальное отставание репликации (staleness)
            и клиенты не будут учитывать отставание вторичного узла
            при выборе направления операции чтения. Подробнее об этом рассказано
            в описании класса <span class="classname"><a href="class.mongodb-driver-readpreference.php" class="classname">MongoDB\Driver\ReadPreference</a></span>.
           </p>
           <p class="para">
            Если указана, максимальное отставание должно быть 32-битным целым числом,
            большим или равным
            <strong><code><a href="class.mongodb-driver-readpreference.php#mongodb-driver-readpreference.constants.smallest-max-staleness-seconds">MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS</a></code></strong>
            (т. е. 90 секунд).
           </p>
          </td>
         </tr>

         <tr>
          <td>password</td>
          <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
          <td>
           Пароль для аутентификации пользователя. Эта опция полезна,
           если пароль содержит специальные символы, которые в противном случае
           должны были закодированы для URI-адреса подключения.
          </td>
         </tr>

         <tr>
          <td>readConcernLevel</td>
          <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
          <td>
           Соответствует параметру гарантий чтения <code class="parameter">level</code>
           Определяет уровень изоляции чтения. Подробнее смотрите
           <span class="classname"><a href="class.mongodb-driver-readconcern.php" class="classname">MongoDB\Driver\ReadConcern</a></span>.
          </td>
         </tr>

         <tr>
          <td>readPreference</td>
          <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
          <td>
           <p class="para">
            Соответствует параметру предпочтениям чтения <code class="parameter">mode</code>
            По умолчанию — <code class="literal">&quot;primary&quot;</code>.
            Подробнее смотрите <span class="classname"><a href="class.mongodb-driver-readpreference.php" class="classname">MongoDB\Driver\ReadPreference</a></span>.
           </p>
          </td>
         </tr>

         <tr>
          <td>readPreferenceTags</td>
          <td><span class="type"><a href="language.types.array.php" class="type array">array</a></span></td>
          <td>
           <p class="para">
            Соответствует параметру предпочтениям чтения <code class="parameter">tagSets</code>.
            Наборы тегов позволяют настраивать операции чтения для определённых
            членов набора реплики. Подробнее смотрите
            <span class="classname"><a href="class.mongodb-driver-readpreference.php" class="classname">MongoDB\Driver\ReadPreference</a></span>.
           </p>
           <blockquote class="note"><p><strong class="note">Замечание</strong>: 
            <span class="simpara">
             Если в строке URI не указано, этот параметр представляется как
             как массив, соответствующий формату, ожидаемому
             <span class="function"><a href="mongodb-driver-readpreference.construct.php" class="function">MongoDB\Driver\ReadPreference::__construct()</a></span>.
            </span>
           </p></blockquote>
          </td>
         </tr>

         <tr>
          <td>replicaSet</td>
          <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
          <td>
           <p class="para">
            Задаёт имя набора реплики.
           </p>
          </td>
         </tr>

         <tr>
          <td>retryReads</td>
          <td><span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></td>
          <td>
           <p class="para">
            Указывает, должен ли драйвер автоматически повторять
            определённые операции чтения, которые не выполняются из-за временных сетевых ошибок
            или выборов набора реплик. Требуется MongoDB 3.6+.
            По умолчанию <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>.
           </p>
           <p class="para">
            Смотрите
            <a href="https://github.com/mongodb/specifications/blob/master/source/retryable-reads/retryable-reads.rst" class="link external">&raquo;&nbsp;Спецификацию по Retryable Reads</a>
            для получения дополнительной информации.
           </p>
          </td>
         </tr>

         <tr>
          <td>retryWrites</td>
          <td><span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></td>
          <td>
           <p class="para">
            Указывает, должен ли драйвер автоматически повторять
            определённые операции записи, которые не выполняются из-за временных сетевых ошибок
            или выборов набора реплик. Требуется MongoDB 3.6+.
            По умолчанию <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>.
           </p>
           <p class="para">
            Смотрите
            <a href="https://www.mongodb.com/docs/manual/core/retryable-writes/" class="link external">&raquo;&nbsp;Retryable Writes</a>
            в руководстве MongoDB для получения дополнительной информации.
           </p>
          </td>
         </tr>

         <tr id="mongodb-driver-manager.construct-urioptions.serverselectiontimeoutms">
          <td>serverSelectionTimeoutMS</td>
          <td><span class="type"><a href="language.types.integer.php" class="type int">int</a></span></td>
          <td>
           <p class="para">
            Указывает как долго в миллисекунд блокировать выбор сервера
            перед выбросом исключения. По умолчанию — 30 000 миллисекунд.
           </p>
          </td>
         </tr>

         <tr>
          <td>serverSelectionTryOnce</td>
          <td><span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></td>
          <td>
           <p class="para">
            Со значением <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> сообщает драйверу сканировать развёртывание MongoDB
            только один раз после неудачной попытки выбора сервера, а затем
            или выбрать сервер, или создать ошибку. Со значением <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> драйвер блокирует выбор
            и выполняет поиск сервера до истечения времени, которое указали в параметре
            <code class="literal">&quot;serverSelectionTimeoutMS&quot;</code>. Значение по умолчанию
            равно <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>.
           </p>
          </td>
         </tr>

         <tr>
          <td>socketCheckIntervalMS</td>
          <td><span class="type"><a href="language.types.integer.php" class="type int">int</a></span></td>
          <td>
           <p class="para">
            Если сокет не использовался в последнее время, драйвер должен проверить
            с помощью команды <code class="literal">hello</code>, прежде чем использовать
            его для любой операции. По умолчанию — 5 000 миллисекунд.
           </p>
          </td>
         </tr>

         <tr>
          <td>socketTimeoutMS</td>
          <td><span class="type"><a href="language.types.integer.php" class="type int">int</a></span></td>
          <td>
           <p class="para">
            Время в миллисекундах, чтобы попытаться отправить или получить в сокет
            до истечения времени. По умолчанию — 300 000 миллисекунд (т. е. 5 минут).
           </p>
          </td>
         </tr>

         <tr>
          <td>srvMaxHosts</td>
          <td><span class="type"><a href="language.types.integer.php" class="type int">int</a></span></td>
          <td>
           <p class="para">
            Максимальное количество результатов SRV для случайного выбора
            при первоначальном заполнении посевного списка или, во время опроса SRV,
            при добавлении новых узлов к топологии.
            По умолчанию <code class="literal">0</code> (т. е. без максимума).
           </p>
          </td>
         </tr>

         <tr>
          <td>srvServiceName</td>
          <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
          <td>
           <p class="para">
            Имя службы, используемое для поиска SRV в начальном списке DNS seedlist
            обнаружения и опроса SRV. По умолчанию <code class="literal">&quot;mongodb&quot;</code>.
           </p>
          </td>
         </tr>

         <tr>
          <td>tls</td>
          <td><span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></td>
          <td>
           <p class="para">
            Со значением <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> инициирует соединение с TLS/SSL.
            Значение по умолчанию равно <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>.
           </p>
          </td>
         </tr>

         <tr>
          <td>tlsAllowInvalidCertificates</td>
          <td><span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></td>
          <td>
           <p class="para">
            Указывает драйверу, выдавать ли ошибку,
            если TLS-сертификат сервера недействителен. Значение по умолчанию
            равно <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>.
           </p>
           <div class="warning"><strong class="warning">Внимание</strong>
            <p class="simpara">
             Отключение проверки сертификата создаёт уязвимость.
            </p>
           </div>
          </td>
         </tr>

         <tr>
          <td>tlsAllowInvalidHostnames</td>
          <td><span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></td>
          <td>
           <p class="para">
            Указывает, должен ли драйвер выдавать ошибку
            при несоответствии имени хоста сервера и имени хоста, указанного
            в сертификате TLS. По умолчанию <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>.
           </p>
           <div class="warning"><strong class="warning">Внимание</strong>
            <p class="simpara">
             Отключение проверки сертификата создаёт уязвимость.
             Разрешение недопустимых имён хоста может привести к атаке типа
             <a href="https://en.wikipedia.org/wiki/Man-in-the-middle_attack" class="link external">&raquo;&nbsp;&quot;человек посередине&quot; (man-in-the-middle)</a>.
            </p>
           </div>
          </td>
         </tr>

         <tr>
          <td>tlsCAFile</td>
          <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
          <td>
           <p class="para">
            Путь к файлу с одним или несколькими центрами сертификации,
            которые следует считать доверенными при установлении соединения TLS.
            По умолчанию будет использоваться хранилище системных сертификатов.
           </p>
          </td>
         </tr>

         <tr>
          <td>tlsCertificateKeyFile</td>
          <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
          <td>
           <p class="para">
            Путь к файлу сертификата клиента или файлу закрытого ключа клиента;
            в случае, если они оба необходимы, файлы должны быть объединены.
           </p>
          </td>
         </tr>

         <tr>
          <td>tlsCertificateKeyFilePassword</td>
          <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
          <td>
           <p class="para">
            Пароль для расшифровки закрытого ключа клиента (т. е.
            параметра URI <code class="literal">&quot;tlsCertificateKeyFile&quot;</code>), который будет использоваться для соединений TLS.
           </p>
          </td>
         </tr>

         <tr>
          <td>tlsDisableCertificateRevocationCheck</td>
          <td><span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></td>
          <td>
           <p class="para">
            Если <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>, драйвер не будет пытаться проверить статус
            отзыва сертификата (например, OCSP, CRL). По умолчанию <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>.
           </p>
          </td>
         </tr>

         <tr>
          <td>tlsDisableOCSPEndpointCheck</td>
          <td><span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></td>
          <td>
           <p class="para">
            Если <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>, драйвер не будет пытаться связаться с конечной
            точкой ответа OCSP, если это необходимо (то есть ответ OCSP не сшивается).
            По умолчанию <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>.
           </p>
          </td>
         </tr>

         <tr>
          <td>tlsInsecure</td>
          <td><span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></td>
          <td>
           <p class="para">
            Ослабьте ограничения TLS в максимально возможной степени.
            При значении <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> этот параметр имеет тот же эффект, что и указание значения <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> для обоих параметров URI
            <code class="literal">&quot;tlsAllowInvalidCertificates&quot;</code>
            и
            <code class="literal">&quot;tlsAllowInvalidHostnames&quot;</code>.
            По умолчанию <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>.
           </p>
           <div class="warning"><strong class="warning">Внимание</strong>
            <p class="simpara">
             Отключение проверки сертификата создаёт уязвимость.
             Разрешение недопустимых имён хоста может привести к атаке типа
             <a href="https://en.wikipedia.org/wiki/Man-in-the-middle_attack" class="link external">&raquo;&nbsp;&quot;человек посередине&quot; (man-in-the-middle)</a>.
            </p>
           </div>
          </td>
         </tr>

         <tr>
          <td>username</td>
          <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
          <td>
           Имя пользователя для аутентификации. Эта опция полезна,
           если имя пользователя содержит специальные символы, которые в противном случае
           должны были быть закодированы в URL для URI-адреса подключения.
          </td>
         </tr>

         <tr>
          <td>w</td>
          <td><span class="type"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span>|<span class="type"><a href="language.types.string.php" class="type string">string</a></span></span></td>
          <td>
           <p class="para">
            Соответствует параметру гарантий записи <code class="parameter">w</code>.
            Подробнее смотрите
            <span class="classname"><a href="class.mongodb-driver-writeconcern.php" class="classname">MongoDB\Driver\WriteConcern</a></span>.
           </p>
          </td>
         </tr>

         <tr>
          <td>wTimeoutMS</td>
          <td><span class="type"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span>|<span class="type"><a href="language.types.string.php" class="type string">string</a></span></span></td>
          <td>
           <p class="para">
            Соответствует параметру гарантий записи <code class="parameter">wtimeout</code>.
            Указывает срок в миллисекундах для гарантии записи. Подробнее смотрите
            <span class="classname"><a href="class.mongodb-driver-writeconcern.php" class="classname">MongoDB\Driver\WriteConcern</a></span>.
           </p>
           <p class="para">
            Если указан, <code class="literal">wTimeoutMS</code> должен быть
            32-битным целым числом со знаком, большим или равным нулю.
           </p>
          </td>
         </tr>

         <tr>
          <td>zlibCompressionLevel</td>
          <td><span class="type"><a href="language.types.integer.php" class="type int">int</a></span></td>
          <td>
           <p class="para">
            Указывает уровень сжатия для использования zlib. Эта
            опция ничего не делает, если <code class="literal">zlib</code> не включён в URL опции
            <code class="literal">&quot;compressors&quot;</code>. Смотрите
            <a href="https://github.com/mongodb/specifications/blob/master/source/compression/OP_COMPRESSED.rst#zlibcompressionlevel" class="link external">&raquo;&nbsp;Спецификация компрессии драйвера</a>
            для получения дополнительной информации.
           </p>
          </td>
         </tr>

        </tbody>
       
      </table>

     </p>
    </dd>
   
   
    <dt id="mongodb-driver-manager.construct-driveroptions"><code class="parameter">driverOptions</code></dt>
    <dd>
     <p class="para">
      <table class="doctable table">
       <caption><strong>driverOptions</strong></caption>
       
        <thead>
         <tr>
          <th>Опция</th>
          <th>Тип</th>
          <th>Описание</th>
         </tr>

        </thead>

        <tbody class="tbody">
         <tr>
          <td>autoEncryption</td>
          <td><span class="type"><a href="language.types.array.php" class="type array">array</a></span></td>
          <td>
           <p class="para">
            Предоставляет опции для включения автоматического шифрования на уровне поля на стороне клиента.
            Список опций описан в <a href="mongodb-driver-manager.construct.php#mongodb-driver-manager.construct-autoencryption" class="link">таблице ниже</a>.
           </p>
           <blockquote class="note"><p><strong class="note">Замечание</strong>: 
            <p class="para">
             Автоматическое шифрование — функция только для Enterprise версии, которая применяется только к операциям над коллекцией.
             Автоматическое шифрование не поддерживается для операций над базой данных или представлением,
             а операции, которые не обходятся, приведут к ошибке (смотрите <a href="https://github.com/mongodb/specifications/blob/master/source/client-side-encryption/client-side-encryption.rst#libmongocrypt-auto-encryption-allow-list" class="link external">&raquo;&nbsp;libmongocrypt: Список разрешений на автоматическое шифрование</a>).
             Чтобы обойти автоматическое шифрование для всех операций, установите <code class="literal">bypassAutoEncryption</code> в значение <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>.
            </p>
            <p class="para">
             Автоматическое шифрование требует, чтобы у аутентифицированного пользователя была привилегия
             <a href="https://www.mongodb.com/docs/manual/reference/command/listCollections/#required-access" class="link external">&raquo;&nbsp;listCollections</a>.
            </p>
            <p class="para">
             Явное шифрование/дешифрование и автоматическая расшифровка — это функция Community версии.
             Драйвер все ещё может автоматически расшифровывать,
             если у опции <code class="literal">bypassAutoEncryption</code> установлено значение <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>.
            </p>
           </p></blockquote>
          </td>
         </tr>

         <tr>
          <td>ca_dir</td>
          <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
          <td>
           <p class="para">
            Путь к корректно захешированному каталогу сертификатов. По умолчанию будет
            использоваться хранилище системных сертификатов.
           </p>
          </td>
         </tr>

         <tr>
          <td>crl_file</td>
          <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
          <td>Путь к файлу списка аннулированных сертификатов.</td>
         </tr>

         <tr>
          <td>disableClientPersistence</td>
          <td><span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></td>
          <td>
           <p class="para">
            Со значением <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> менеджер будет использовать новый клиент библиотеки libmongoc, который не будет
            сохраняться или использоваться другими объектами Manager.
            Когда этот объект Manager освободится, его клиент уничтожится,
            а все соединения закроются. Значение по умолчанию равно <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>.
           </p>
           <blockquote class="note"><p><strong class="note">Замечание</strong>: 
            <span class="simpara">
             Отключение сохранения клиента обычно не рекомендуется.
            </span>
           </p></blockquote>
          </td>
         </tr>

         <tr>
          <td>driver</td>
          <td><span class="type"><a href="language.types.array.php" class="type array">array</a></span></td>
          <td>
           <p class="para">
            Позволяет библиотеке более высокого уровня добавлять свои метаданные
            к рукопожатию сервера. По умолчанию модуль отправляет своё имя,
            версию и платформу (то есть PHP-версию) при рукопожатии. Для ключей
            <code class="literal">name</code>, <code class="literal">version</code> и <code class="literal">platform</code>
            этого массива можно указать строки, которые метод добавит к полям
            документа рукопожатия.
           </p>
           <blockquote class="note"><p><strong class="note">Замечание</strong>: 
            <span class="simpara">
             Информация о рукопожатии ограничена 512 байтами. Модуль обрежет
             данные рукопожатия, чтобы соответствовать этой 512-байтовой строке. Библиотекам
             более высокого уровня рекомендуется сохранять свои метаданные краткими.
            </span>
           </p></blockquote>
          </td>
         </tr>

         <tr>
          <td>serverApi</td>
          <td><span class="classname"><a href="class.mongodb-driver-serverapi.php" class="classname">MongoDB\Driver\ServerApi</a></span></td>
          <td>
           <p class="para">
            Опция обновляет версию API-интерфейса сервера для менеджера.
            Без опции API-версия не объявляется.
           </p>
          </td>
         </tr>

        </tbody>
       
      </table>

     </p>
     <p class="para" id="mongodb-driver-manager.construct-autoencryption">
      Опции, поддерживаемые автоматическим шифрованием с помощью <code class="literal">autoEncryption</code>:
      <table class="doctable table">
       <caption><strong>autoEncryption</strong></caption>
       
        <thead>
         <tr>
          <th>Опция</th>
          <th>Тип</th>
          <th>Описание</th>
         </tr>

        </thead>

        <tbody class="tbody">
         
         <tr>
          <td>keyVaultClient</td>
          <td><span class="classname"><a href="class.mongodb-driver-manager.php" class="classname">MongoDB\Driver\Manager</a></span></td>
          <td>Менеджер маршрутизации запросов ключей данных в отдельный кластер MongoDB. По умолчанию метод выбирает текущий менеджер и кластер.</td>
         </tr>


         
         <tr>
          <td>keyVaultNamespace</td>
          <td><span class="type"><a href="language.types.string.php" class="type string">string</a></span></td>
          <td>Полное пространство имён (например, <code class="literal">&quot;databaseName.collectionName&quot;</code>), обозначающее коллекцию, которая содержит все ключи данных, используемые для шифрования и дешифрования. Обязательный параметр.</td>
         </tr>


         
         <tr>
          <td>kmsProviders</td>
          <td><span class="type"><a href="language.types.array.php" class="type array">array</a></span></td>
          <td>
           <p class="para">
            Документ, содержащий конфигурацию для одного или нескольких провайдеров KMS, которые используются для шифрования ключей данных.
            Поддерживаются провайдеры <code class="literal">&quot;aws&quot;</code>, <code class="literal">&quot;azure&quot;</code>, <code class="literal">&quot;gcp&quot;</code> и <code class="literal">&quot;local&quot;</code>, и, по крайней мере, один из них должен быть указан.
           </p>
           <p class="para">
            Если для <code class="literal">&quot;aws&quot;</code>, <code class="literal">&quot;azure&quot;</code> или <code class="literal">&quot;gcp&quot;</code> указан пустой документ,
            драйвер попытается сконфигурировать провайдера, используя
            <a href="https://github.com/mongodb/specifications/blob/master/source/client-side-encryption/client-side-encryption.rst#automatic-credentials" class="link external">&raquo;&nbsp;Автоматические учётные данные</a>.
           </p>
           <p class="para">
            Формат для <code class="literal">&quot;aws&quot;</code> выглядит следующим образом:
           </p>
           <div class="example-contents">
<div class="javascriptcode"><pre class="javascriptcode">aws: {
    accessKeyId: &lt;string&gt;,
    secretAccessKey: &lt;string&gt;,
    sessionToken: &lt;optional string&gt;
}</pre>
</div>
           </div>

           <p class="para">
            Формат для <code class="literal">&quot;azure&quot;</code> выглядит следующим образом:
           </p>
           <div class="example-contents">
<div class="javascriptcode"><pre class="javascriptcode">azure: {
    tenantId: &lt;string&gt;,
    clientId: &lt;string&gt;,
    clientSecret: &lt;string&gt;,
    identityPlatformEndpoint: &lt;optional string&gt; // По умолчанию &quot;login.microsoftonline.com&quot;

}</pre>
</div>
           </div>

           <p class="para">
            Формат для <code class="literal">&quot;gcp&quot;</code> выглядит следующим образом:
           </p>
           <div class="example-contents">
<div class="javascriptcode"><pre class="javascriptcode">gcp: {
    email: &lt;string&gt;,
    privateKey: &lt;base64 string&gt;|&lt;MongoDB\BSON\Binary&gt;,
    endpoint: &lt;optional string&gt; // По умолчанию &quot;oauth2.googleapis.com&quot;

}</pre>
</div>
           </div>

           <p class="para">
            Формат для <code class="literal">&quot;kmip&quot;</code> выглядит следующим образом:
           </p>
           <div class="example-contents">
<div class="javascriptcode"><pre class="javascriptcode">kmip: {
    endpoint: &lt;string&gt;
}</pre>
</div>
           </div>

           <p class="para">
            Формат для <code class="literal">&quot;local&quot;</code> выглядит следующим образом:
           </p>
           <div class="example-contents">
<div class="javascriptcode"><pre class="javascriptcode">local: {
    // 96-байтовый главный ключ, используемый для шифрования/дешифрования ключей данных
    key: &lt;base64 string&gt;|&lt;MongoDB\BSON\Binary&gt;
}</pre>
</div>
           </div>

          </td>
         </tr>


         
         <tr>
          <td>tlsOptions</td>
          <td><span class="type"><a href="language.types.array.php" class="type array">array</a></span></td>
          <td>
           <p class="para">
            Документ, содержащий конфигурацию TLS для одного или нескольких KMS провайдеров. Поддерживаются провайдеры <code class="literal">&quot;aws&quot;</code>, <code class="literal">&quot;azure&quot;</code>, <code class="literal">&quot;gcp&quot;</code> и <code class="literal">&quot;kmip&quot;</code>. Все провайдеры поддерживают следующие опции:
           </p>
           <div class="example-contents">
<div class="javascriptcode"><pre class="javascriptcode">&lt;provider&gt;: {
    tlsCaFile: &lt;optional string&gt;,
    tlsCertificateKeyFile: &lt;optional string&gt;,
    tlsCertificateKeyFilePassword: &lt;optional string&gt;,
    tlsDisableOCSPEndpointCheck: &lt;optional bool&gt;
}</pre>
</div>
           </div>

          </td>
         </tr>


         <tr>
          <td>schemaMap</td>
          <td><span class="type"><span class="type"><a href="language.types.array.php" class="type array">array</a></span>|<span class="type"><a href="language.types.object.php" class="type object">object</a></span></span></td>
          <td>
           <p class="para">
            Карта пространств имён коллекции в локальную схему JSON. Используется для настройки автоматического шифрования.
            Дополнительную информацию смотрите в <a href="https://www.mongodb.com/docs/manual/reference/security-client-side-automatic-json-schema/" class="link external">&raquo;&nbsp;Правилах автоматического шифрования</a> в руководстве по MongoDB.
            Ошибкой является указание коллекции как в <code class="literal">schemaMap</code>, так и в <code class="literal">encryptedFieldsMap</code>.
           </p>
           <blockquote class="note"><p><strong class="note">Замечание</strong>: 
            <span class="simpara">
             Добавление <code class="literal">schemaMap</code> обеспечивает большую
             безопасность, чем использование схем JSON, полученных с
             сервера. Это защищает от вредоносного сервера, рекламирующего
             ложную схему JSON, которая может заставить клиента отправлять
             незашифрованные данные, которые должны быть зашифрованы.
            </span>
           </p></blockquote>
           <blockquote class="note"><p><strong class="note">Замечание</strong>: 
            <span class="simpara">
             Схемы, поставляемые в <code class="literal">schemaMap</code>, применяются только
             для настройки автоматического шифрования на стороне
             клиента. Другие правила проверки в схеме JSON
             не будут применяться драйвером и приведут к ошибке.
            </span>
           </p></blockquote>
          </td>
         </tr>

         <tr>
          <td>bypassAutoEncryption</td>
          <td><span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></td>
          <td>
           Если <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>, <code class="literal">mongocryptd</code>
           не будет появляться автоматически.
           Используется для отключения автоматического шифрования. По умолчанию <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>.
          </td>
         </tr>

         <tr>
          <td>bypassQueryAnalysis</td>
          <td><span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></td>
          <td>
           <p class="para">
            Если <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>, автоматический анализ исходящих команд будет
            отключён и <code class="literal">mongocryptd</code> не будет появляться автоматически.
            Это позволяет использовать явное шифрование для запроса индексированных полей
            без необходимости использования лицензированной корпоративной
            библиотеки <code class="literal">crypt_shared</code> или
            процесса <code class="literal">mongocryptd</code>.
            По умолчанию установлено значение <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>.
           </p>
          </td>
         </tr>

         <tr>
          <td>encryptedFieldsMap</td>
          <td><span class="type"><span class="type"><a href="language.types.array.php" class="type array">array</a></span>|<span class="type"><a href="language.types.object.php" class="type object">object</a></span></span></td>
          <td>
           <p class="para">
            Карта пространств имён коллекции в документе <code class="literal">encryptedFields</code>.
            Используется для настройки шифрования с возможностью запроса.
            Смотрите <a href="https://www.mongodb.com/docs/manual/core/queryable-encryption/fundamentals/encrypt-and-query/" class="link external">&raquo;&nbsp;Шифрование полей и возможность запросов</a>
            в руководстве по MongoDB для получения дополнительной информации.
            Ошибкой является указание коллекции как в <code class="literal">encryptedFieldsMap</code>,
            так и в <code class="literal">schemaMap</code>.
           </p>
           <blockquote class="note"><p><strong class="note">Замечание</strong>: 
            <span class="simpara">
             Указание <code class="literal">encryptedFieldsMap</code> обеспечивает большую безопасность,
             чем полагаться на <code class="literal">encryptedFields</code>, полученные от сервера.
             Это защищает от злонамеренного сервера,
             рекламирующего ложные <code class="literal">encryptedFields</code>.
            </span>
           </p></blockquote>
          </td>
         </tr>

         <tr>
          <td>extraOptions</td>
          <td><span class="type"><a href="language.types.array.php" class="type array">array</a></span></td>
          <td>
           <p class="para">
            <code class="literal">extraOptions</code> относится к процессу <code class="literal">mongocryptd</code>.
            Поддерживаются следующие параметры:
           </p>
           <ul class="simplelist">
            <li>
             <code class="literal">mongocryptdURI</code> (<span class="type"><a href="language.types.string.php" class="type string">string</a></span>): URI для подключения к существующему процессу <code class="literal">mongocryptd</code>.
             По умолчанию <code class="literal">&quot;mongodb://localhost:27020&quot;</code>.
            </li>
            <li>
             <code class="literal">mongocryptdBypassSpawn</code> (<span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>): Если <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>, предотвращает создание драйвером <code class="literal">mongocryptd</code>.
             По умолчанию <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>.
            </li>
            <li>
             <code class="literal">mongocryptdSpawnPath</code> (<span class="type"><a href="language.types.string.php" class="type string">string</a></span>): Абсолютный путь для поиска двоичного файла <code class="literal">mongocryptd</code>.
             По умолчанию это пустая строка, использующая системные пути.
            </li>
            <li>
             <code class="literal">mongocryptdSpawnArgs</code> (<span class="type"><a href="language.types.array.php" class="type array">array</a></span>): Массив строковых аргументов для передачи в <code class="literal">mongocryptd</code> при создании.
             По умолчанию <code class="literal">[&quot;--idleShutdownTimeoutSecs=60&quot;]</code>.
            </li>
            <li>
             <code class="literal">cryptSharedLibPath</code> (<span class="type"><a href="language.types.string.php" class="type string">string</a></span>): Абсолютный путь к библиотеке общего доступа <code class="literal">crypt_shared</code>.
             По умолчанию — пустая строка и использует системные пути.
            </li>
            <li>
             <code class="literal">cryptSharedLibRequired</code> (<span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>): Если <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>, требует, чтобы драйвер загружал <code class="literal">crypt_shared</code>.
             По умолчанию <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>.
            </li>
           </ul>
           <p class="para">
            Смотрите
            <a href="https://github.com/mongodb/specifications/blob/master/source/client-side-encryption/client-side-encryption.rst#extraoptions" class="link external">&raquo;&nbsp;Руководство по шифрованию на стороне клиента</a>,
            чтобы получить больше информации.
           </p>
          </td>
         </tr>

        </tbody>
       
      </table>

      <blockquote class="note"><p><strong class="note">Замечание</strong>: 
       <span class="simpara">
        Автоматическое шифрование — это только корпоративная функция, которая применяется
        только к операциям над коллекцией. Автоматическое шифрование не
        поддерживается для операций с базой данных или представлением, операции, которые
        не получится обойти, приведут к ошибке. Чтобы обойти автоматическое
        шифрование для всех операций, установите <code class="literal">bypassAutoEncryption=true</code>
        в <code class="literal">autoEncryption</code>. Для получения дополнительной информации
        о разрешённых операциях смотрите
        <a href="https://github.com/mongodb/specifications/blob/master/source/client-side-encryption/client-side-encryption.rst#libmongocrypt-auto-encryption-whitelist" class="link external">&raquo;&nbsp;Руководство по шифрованию на стороне клиента</a>.
       </span>
      </p></blockquote>
     </p>
    </dd>
   
  </dl>
 </div>


 <div class="refsect1 errors" id="refsect1-mongodb-driver-manager.construct-errors">
  <h3 class="title">Ошибки</h3>
  <ul class="simplelist">
   <li>При ошибке парсинга аргумента метод выбрасывает исключение  <span class="classname"><a href="class.mongodb-driver-exception-invalidargumentexception.php" class="classname">MongoDB\Driver\Exception\InvalidArgumentException</a></span>.</li>
   <li>При неверном формате <code class="parameter">uri</code> выбрасывает исключение <span class="classname"><a href="class.mongodb-driver-exception-runtimeexception.php" class="classname">MongoDB\Driver\Exception\RuntimeException</a></span>.</li>
  </ul>
 </div>


 <div class="refsect1 changelog" id="refsect1-mongodb-driver-manager.construct-changelog">
  <h3 class="title">Список изменений</h3>
  <p class="para">
   <table class="doctable informaltable">
    
     <thead>
      <tr>
       <th>Версия</th>
       <th>Описание</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>PECL-модуль mongodb 2.0.0</td>
       <td>
        <p class="para">
         Удалили URI-параметр <code class="literal">&quot;canonicalizeHostname&quot;</code>.
         Вместо него указывают свойство URI-параметра <code class="literal">&quot;authMechanismProperties&quot;</code> —
         <code class="literal">&quot;CANONICALIZE_HOST_NAME&quot;</code>.
        </p>
        <p class="para">
         Удалили URI-параметр <code class="literal">&quot;gssapiServiceName&quot;</code>.
         Вместо него указывают свойство URI-параметра <code class="literal">&quot;authMechanismProperties&quot;</code> —
         <code class="literal">&quot;SERVICE_NAME&quot;</code>.
        </p>
        <p class="para">
         Удалили URI-параметр <code class="literal">&quot;safe&quot;</code> URI. Вместо него указывают
         URI-параметры <code class="literal">&quot;w&quot;</code> и <code class="literal">&quot;wTimeoutMS&quot;</code>.
        </p>
        <p class="para">
         Удалили URI-параметр <code class="literal">&quot;ssl&quot;</code>. Вместо него указывают
         URI-параметр <code class="literal">&quot;tls&quot;</code>.
        </p>
        <p class="para">
         Удалили драйверный параметр <code class="literal">&quot;allow_invalid_hostname&quot;</code>.
         Вместо него указывают URI-параметр <code class="literal">&quot;tlsAllowInvalidHostnames&quot;</code>.
        </p>
        <p class="para">
         Удалили драйверный параметр <code class="literal">&quot;ca_file&quot;</code>. Вместо него указывают
         URI-параметр <code class="literal">&quot;tlsCAFile&quot;</code>.
        </p>
        <p class="para">
         Удалили драйверный параметр <code class="literal">&quot;context&quot;</code>. Параметры
         контекста устарели в пользу URI-параметров, которые связаны
         с TLS.
        </p>
        <p class="para">
         Удалили драйверный параметр <code class="literal">&quot;pem_file&quot;</code>. Вместо него указывают
         URI-параметр <code class="literal">&quot;tlsCertificateKeyFile&quot;</code>.
        </p>
        <p class="para">
         Удалили драйверный параметр <code class="literal">&quot;pem_pwd&quot;</code>. Вместо него указывают
         URI-параметр <code class="literal">&quot;tlsCertificateKeyFilePassword&quot;</code>.
        </p>
        <p class="para">
         Удалили драйверный параметр <code class="literal">&quot;weak_cert_validation&quot;</code>.
         Вместо него указывают URI-параметр <code class="literal">&quot;tlsAllowInvalidCertificates&quot;</code>.
        </p>
       </td>
      </tr>

      <tr>
       <td>PECL-модуль mongodb 1.16.0</td>
       <td>
        <p class="para">
         Провайдер AWS KMS для шифрования на стороне клиента теперь принимает параметр
         <code class="literal">&quot;sessionToken&quot;</code>, который можно использовать для аутентификации
         с временными учётными данными AWS.
        </p>
        <p class="para">
         Добавили <code class="literal">&quot;tlsDisableOCSPEndpointCheck&quot;</code> в поле
         <code class="literal">&quot;tlsOptions&quot;</code> поля
         <code class="literal">&quot;autoEncryption&quot;</code> опции драйвера.
        </p>
        <p class="para">
         Драйвер попытается сконфигурировать провайдера, заполнив
         <a href="https://github.com/mongodb/specifications/blob/master/source/client-side-encryption/client-side-encryption.rst#automatic-credentials" class="link external">&raquo;&nbsp;Автоматические учётные данные</a>,
         если для KMS-провайдеров <code class="literal">&quot;azure&quot;</code>
         или <code class="literal">&quot;gcp&quot;</code> указали пустой документ.
        </p>
       </td>
      </tr>

      <tr>
       <td>PECL-модуль mongodb 1.15.0</td>
       <td>
        <p class="para">
         Драйвер попытается сконфигурировать провайдера, заполнив
         <a href="https://github.com/mongodb/specifications/blob/master/source/client-side-encryption/client-side-encryption.rst#automatic-credentials" class="link external">&raquo;&nbsp;Автоматические учётные данные</a>,
         если для KMS-провайдера <code class="literal">&quot;aws&quot;</code> указали пустой документ.
        </p>
       </td>
      </tr>

      <tr>
       <td>PECL-модуль mongodb 1.14.0</td>
       <td>
        <p class="para">
         Добавили опции автоматического шифрования <code class="literal">&quot;bypassQueryAnalysis&quot;</code> и <code class="literal">&quot;encryptedFieldsMap&quot;</code>.
         Дополнительные опции, относящиеся к <code class="literal">crypt_shared</code>, теперь поддерживаются в опции автоматического шифрования <code class="literal">&quot;extraOptions&quot;</code>.
         option.
        </p>
       </td>
      </tr>

      <tr>
       <td>PECL-модуль mongodb 1.13.0</td>
       <td>
        <p class="para">
         Добавили URI-параметры <code class="literal">&quot;srvMaxHosts&quot;</code>
         и <code class="literal">&quot;srvServiceName&quot;</code>.
        </p>
       </td>
      </tr>

      <tr>
       <td>PECL-модуль mongodb 1.12.0</td>
       <td>
        <p class="para">
         KMIP теперь поддерживается как KMS-провайдер для шифрования на стороне клиента
         и настраивается через поле <code class="literal">&quot;kmsProviders&quot;</code>
         параметра драйвера <code class="literal">&quot;autoEncryption&quot;</code>.
         Кроме того, параметры TLS для KMS-провайдеров теперь настраиваются в поле <code class="literal">&quot;tlsOptions&quot;</code>
         параметра драйвера <code class="literal">&quot;autoEncryption&quot;</code>.
        </p>
       </td>
      </tr>

      <tr>
       <td>PECL-модуль mongodb 1.11.0</td>
       <td>
        <p class="para">
         Добавили URI-параметр <code class="literal">&quot;loadBalanced&quot;</code>.
        </p>
       </td>
      </tr>

      <tr>
       <td>PECL-модуль mongodb 1.10.0</td>
       <td>
        <p class="para">
         Добавили драйверный параметр <code class="literal">&quot;disableClientPersistence&quot;</code>.
        </p>
        <p class="para">
         Azure и GCP теперь поддерживаются как поставщик KMS
         для шифрования на стороне клиента и могут быть настроены в поле <code class="literal">&quot;kmsProviders&quot;</code> параметра драйвера <code class="literal">&quot;autoEncryption&quot;</code>.
         Строки в кодировке Base64 теперь принимаются как альтернатива <span class="classname"><a href="class.mongodb-bson-binary.php" class="classname">MongoDB\BSON\Binary</a></span>
         для параметров внутри <code class="literal">&quot;kmsProviders&quot;</code>.
        </p>
       </td>
      </tr>

      <tr>
       <td>PECL-модуль mongodb 1.8.0</td>
       <td>
        <p class="para">
         Добавили URI-параметры <code class="literal">&quot;directConnection&quot;</code>,
         <code class="literal">&quot;tlsDisableCertificateRevocationCheck&quot;</code>
         и <code class="literal">&quot;tlsDisableOCSPEndpointCheck&quot;</code>.
        </p>
        <p class="para">
         Добавили драйверный параметр <code class="literal">&quot;driver&quot;</code>.
        </p>
       </td>
      </tr>

      <tr>
       <td>PECL-модуль mongodb 1.7.0</td>
       <td>
        <p class="para">
         Добавили драйверный параметр <code class="literal">&quot;autoEncryption&quot;</code>.
        </p>
        <p class="para">
         Указание любой опции SSL или TLS
         в параметре <code class="parameter">driverOptions</code> теперь неявно включает TLS, как это делается для
         соответствующих URI-параметров.
        </p>
       </td>
      </tr>

      <tr>
       <td>PECL-модуль mongodb 1.6.0</td>
       <td>
        <p class="para">
         Добавили URI-параметры <code class="literal">&quot;retryReads&quot;</code>, <code class="literal">&quot;tls&quot;</code>,
         <code class="literal">&quot;tlsAllowInvalidCertificates&quot;</code>,
         <code class="literal">&quot;tlsAllowInvalidHostnames&quot;</code>,
         <code class="literal">&quot;tlsCAFile&quot;</code>,
         <code class="literal">&quot;tlsCertificateKeyFile&quot;</code>,
         <code class="literal">&quot;tlsCertificateKeyFilePassword&quot;</code>
         и <code class="literal">&quot;tlsInsecure&quot;</code>.
        </p>
        <p class="para">
         Значение URI-параметра <code class="literal">&quot;retryWrites&quot;</code> теперь по умолчанию равно <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>.
        </p>
        <p class="para">
         Передача URI-опции SSL или TLS через строку подключения или параметр
         <code class="parameter">uriOptions</code>
         теперь неявно включает TLS, при условии,
         если значения <code class="literal">ssl</code>
         или <code class="literal">tls</code> не равны <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>. TSL <em>не</em>
         включается неявно
         для любых опций в параметре <code class="parameter">driverOptions</code>,
         как в предыдущих версиях.
        </p>
       </td>
      </tr>

      <tr>
       <td>PECL-модуль mongodb 1.5.0</td>
       <td>
        <p class="para">
         Параметр <code class="literal">&quot;wtimeoutMS&quot;</code> теперь всегда проверяется и применяется
         к гарантии записи. Раньше параметр игнорировался,
         если значение параметра <code class="literal">&quot;w&quot;</code> оказывалось &lt;= 1, поскольку время ожидания применяется только
         к репликации.
        </p>
       </td>
      </tr>

      <tr>
       <td>PECL-модуль mongodb 1.4.0</td>
       <td>
        <p class="para">
         Добавили URI-параметры <code class="literal">&quot;compressors&quot;</code>,
         <code class="literal">&quot;retryWrites&quot;</code>
         и <code class="literal">&quot;zlibCompressionLevel&quot;</code>.
        </p>
       </td>
      </tr>

      <tr>
       <td>PECL-модуль mongodb 1.3.0</td>
       <td>
        <p class="para">
         В аргументе <code class="parameter">uriOptions</code> появились опции
         <code class="literal">&quot;authMechanism&quot;</code>
         и <code class="literal">&quot;authMechanismProperties&quot;</code>. Раньше эти опции
         поддерживались только в аргументе <code class="parameter">uri</code>.
        </p>
       </td>
      </tr>

      <tr>
       <td>PECL-модуль mongodb 1.2.0</td>
       <td>
        <p class="para">
         Аргумент <code class="parameter">uri</code> по умолчанию теперь равен
         <code class="literal">&quot;mongodb://127.0.0.1/&quot;</code>. Порт по умолчанию не изменился —
         <code class="literal">27017</code>.
        </p>
        <p class="para">
         Добавили URI-параметр <code class="literal">&quot;appname&quot;</code>.
        </p>
        <p class="para">
         Добавили драйверные параметры <code class="literal">&quot;allow_invalid_hostname&quot;</code>,
         <code class="literal">&quot;ca_file&quot;</code>, <code class="literal">&quot;ca_dir&quot;</code>,
         <code class="literal">&quot;clr_file&quot;</code>, <code class="literal">&quot;pem_file&quot;</code>,
         <code class="literal">&quot;pem_pwd&quot;</code>
         и <code class="literal">&quot;weak_cert_validation&quot;</code>.
        </p>
        <p class="para">
         API-интерфейс PHP-потоков больше не задействуется для соединения с сокетом. Значение URI-параметра
         <code class="literal">connectTimeoutMS</code> по умолчанию теперь равно 10 секундам
         вместо значения опции
         <a href="filesystem.configuration.php#ini.default-socket-timeout" class="link">default_socket_timeout</a>,
         как было в предыдущих версиях. Кроме того, модуль больше не поддерживает
         <a href="context.ssl.php" class="link">параметры SSL-контекста</a> через параметр драйвера
         <code class="literal">context</code>.
        </p>
       </td>
      </tr>

      <tr>
       <td>PECL-модуль mongodb 1.1.0</td>
       <td>
        <p class="para">
         Аргумент <code class="parameter">uri</code> стал необязательным и по умолчанию равен
         <code class="literal">&quot;mongodb://localhost:27017/&quot;</code>.
        </p>
       </td>
      </tr>

     </tbody>
    
   </table>

  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-mongodb-driver-manager.construct-examples">
  <h3 class="title">Примеры</h3>
  <div class="example" id="example-1">
   <p><strong>Пример #1 Примеры работы метода <span class="function"><strong>MongoDB\Driver\Manager::__construct()</strong></span></strong></p>
   <div class="example-contents"><p>Подключение к автономному узлу MongoDB:</p></div>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br />$manager </span><span style="color: #007700">= new </span><span style="color: #0000BB">MongoDB\Driver\Manager</span><span style="color: #007700">(</span><span style="color: #DD0000">"mongodb://example.com:27017"</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

   <div class="example-contents"><p>
    Подключение к автономному узлу СУБД MongoDB через доменный сокет Unix. Путь сокета
    допускает специальные символы наподобие слешей, которые требуется закодировать
    функцией <span class="function"><a href="function.rawurlencode.php" class="function">rawurlencode()</a></span>.
   </p></div>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br />$manager </span><span style="color: #007700">= new </span><span style="color: #0000BB">MongoDB\Driver\Manager</span><span style="color: #007700">(</span><span style="color: #DD0000">"mongodb://" </span><span style="color: #007700">. </span><span style="color: #0000BB">rawurlencode</span><span style="color: #007700">(</span><span style="color: #DD0000">"/tmp/mongodb-27017.sock"</span><span style="color: #007700">));<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

   <div class="example-contents"><p>Подключение к набору реплик:</p></div>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br />$manager </span><span style="color: #007700">= new </span><span style="color: #0000BB">MongoDB\Driver\Manager</span><span style="color: #007700">(</span><span style="color: #DD0000">"mongodb://rs1.example.com,rs2.example.com/?replicaSet=myReplicaSet"</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

   <div class="example-contents"><p>Подключение к сегментированному кластеру (т. е. одну или нескольким экземплярам mongos):</p></div>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br />$manager </span><span style="color: #007700">= new </span><span style="color: #0000BB">MongoDB\Driver\Manager</span><span style="color: #007700">(</span><span style="color: #DD0000">"mongodb://mongos1.example.com,mongos2.example.com/"</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

   <div class="example-contents"><p>Подключение к MongoDB с учётными данными аутентификации для конкретного пользователя и базы данных:</p></div>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br />$manager </span><span style="color: #007700">= new </span><span style="color: #0000BB">MongoDB\Driver\Manager</span><span style="color: #007700">(</span><span style="color: #DD0000">"mongodb://myusername:mypassword@example.com/?authSource=databaseName"</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>


   <div class="example-contents"><p>
    Подключение к MongoDB с учётными данными аутентификации для конкретного пользователя и базы данных,
    где имя пользователя или пароль содержат специальные
    символы (например, <code class="literal">@</code>, <code class="literal">:</code>,
    <code class="literal">%</code>). В следующем примере, строка с паролем
    <code class="literal">myp@ss:w%rd</code> была вручную экранирована; однако
    <span class="function"><a href="function.rawurlencode.php" class="function">rawurlencode()</a></span> может использоваться для экранирования URI-компонентов,
    которые могут содержать специальные символы.
   </p></div>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br />$manager </span><span style="color: #007700">= new </span><span style="color: #0000BB">MongoDB\Driver\Manager</span><span style="color: #007700">(</span><span style="color: #DD0000">"mongodb://myusername:mypassword@example.com/?authSource=databaseName"</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>


   <div class="example-contents"><p>Подключение к MongoDB с аутентификацией X509:</p></div>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br />$manager </span><span style="color: #007700">= new </span><span style="color: #0000BB">MongoDB\Driver\Manager</span><span style="color: #007700">(<br />    </span><span style="color: #DD0000">"mongodb://example.com/?ssl=true&amp;authMechanism=MONGODB-X509"</span><span style="color: #007700">,<br />    [],<br />    [<br />        </span><span style="color: #DD0000">"pem_file" </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">"/path/to/client.pem"</span><span style="color: #007700">,<br />    ]<br />);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </div>


 <div class="refsect1 seealso" id="refsect1-mongodb-driver-manager.construct-seealso">
  <h3 class="title">Смотрите также</h3>
  <ul class="simplelist">
   <li><a href="mongodb.connection-handling.php" class="link">Обработка подключения и сохранение</a></li>
   <li><a href="https://www.mongodb.com/docs/manual/reference/connection-string/" class="link external">&raquo;&nbsp;Формат строки соединения MongoDB</a></li>
  </ul>
 </div>


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