Update to English library.xml

This commit is contained in:
Mikhail Alferov
2024-06-08 06:06:40 +03:00
committed by GitHub
parent 21126f2b2f
commit db1c011e5d

View File

@ -1,13 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 077667aa60c2eaee4fbb704824e265d3ad6120b3 Maintainer: rjhdby Status: ready -->
<!-- EN-Revision: e9214a2619efc5906fab59cd42fb7404c4dc49a5 Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<chapter xml:id="mongodb.tutorial.library" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Работа библиотеки PHP с драйвером MongoDB (PHPLIB)</title>
<para>
После первоначальной настройки драйвера продолжится объяснение того, как начать
работу с драйвером MongoDB и пользовательской библиотекой
чтобы создать первый проект.
После первоначальной настройки модуля продолжится объяснение того, как начать
работу с соответствующей пользовательской библиотекой для написания первого проекта.
</para>
<section>
@ -19,7 +18,7 @@
</para>
<para>
Библиотеку будем устанавливать через пакетный менеджер
Библиотеку будем устанавливать через пакетный менеджер
<link xlink:href="&url.mongodb.composer;">Composer</link>.
Инструкции по установке Composer на разные платформы опубликованы на его сайте.
</para>
@ -114,9 +113,9 @@ echo "Идентификатор вставленного документа '{$
<para>
Поскольку вставленный документ не содержал поля <code>_id</code>,
драйвер сгенерирует для сервера объект <classname>MongoDB\BSON\ObjectId</classname>,
чтобы использовать как <code>_id</code>. Это значение также становится доступно
вызываемому на объекте результата методу <code>insertOne</code>.
модуль сгенерирует объект <classname>MongoDB\BSON\ObjectId</classname>,
чтобы сервера использовал его как <code>_id</code>. Это значение также становится доступно
вызывающей стороне через результирующий объект, который возвращается методом <code>insertOne</code>.
</para>
<para>
@ -126,30 +125,34 @@ echo "Идентификатор вставленного документа '{$
<programlisting role="php">
<![CDATA[
<?php
require 'vendor/autoload.php'; // подключаем автозагрузчик классов Composer
require 'vendor/autoload.php'; // Подключаем автозагрузчик классов Composer
$client = new MongoDB\Client("mongodb://localhost:27017");
$collection = $client->demo->beers;
$result = $collection->find( [ 'name' => 'Hinterland', 'brewery' => 'BrewDog' ] );
$result = $collection->find(['name' => 'Hinterland', 'brewery' => 'BrewDog']);
foreach ($result as $entry) {
echo $entry['_id'], ': ', $entry['name'], "\n";
}
?>
]]>
</programlisting>
</para>
<para>
Хотя после знакомства с примерами может быть неочевидно, но документы BSON и массивы по умолчанию
десериализованы как типы классов в библиотеке. Эти классы дают гарантию, что
значения сохранят типы при сериализации обратно в BSON,
что исключает проблемы со старыми драйверами, когда массивы могли преобразоваться
в документы и наоборот. А также этот тип классов расширяет
класс <classname>ArrayObject</classname>, что повышает удобство работы с ними.
Подробнее о сериализации и десериализации между переменными PHP
и BSON рассказано в спецификации <xref linkend="mongodb.persistence"/>.
Хотя примеры не всегда добавляют очевидности, но BSON-документы и BSON-массивы по умолчанию
не сериализуются как специальные классы в библиотеке. Эти классы
расширяют класс <classname>ArrayObject</classname> для удобства и реализуют
интерфейсы модуля <interfacename>MongoDB\BSON\Serializable</interfacename>
и <interfacename>MongoDB\BSON\Unserializable</interfacename>, чтобы гарантировать,
что значения сохраняют тип при сериализации обратно в BSON. Это
помогает избежать предостережения в устаревшем модуле <code>mongo</code>, в котором массивы
могли превращаться в документы и наоборот. Дополнительную информацию
о преобразовании значений между PHP и BSON даёт спецификация
<xref linkend="mongodb.persistence"/>.
</para>
</section>
</chapter><!-- Keep this comment at the end of the file