1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-23 23:32:16 +01:00

igbinary : fix XML by converting para to simpara tags via script

This commit is contained in:
Gina Peter Banyard
2026-01-18 21:41:50 +00:00
parent eb93a15b86
commit 78977e8d1f
4 changed files with 57 additions and 56 deletions

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: edd5686aff3f4b2d14eec931b875ee4e0e152b27 Maintainer: sergey Status: ready -->
<!-- EN-Revision: 43dd38b94fbf8a9e3efc9c5bfde27c14b9e2ce9c Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="function.igbinary-serialize">
<refnamediv>
@@ -13,16 +13,16 @@
<type class="union"><type>string</type><type>false</type></type><methodname>igbinary_serialize</methodname>
<methodparam><type>mixed</type><parameter>value</parameter></methodparam>
</methodsynopsis>
<para>
<simpara>
Создаёт сохраняемое представление значения.
</para>
<para>
</simpara>
<simpara>
Полезно для хранения или передачи значений PHP без потери их типа и структуры.
</para>
<para>
</simpara>
<simpara>
Чтобы снова превратить сериализованную строку в значение PHP,
можно использовать <function>igbinary_unserialize</function>.
</para>
</simpara>
</refsect1>
<refsect1 role="parameters">
@@ -31,27 +31,27 @@
<varlistentry>
<term><parameter>value</parameter></term>
<listitem>
<para>
<simpara>
Значение, которое необходимо сериализовать. <function>igbinary_serialize</function>
обрабатывает все типы, кроме ресурсов (<type>resource</type>) и некоторых объектов (<type>object</type>) (смотрите примечание ниже).
Даже массивы (&array;), содержащие ссылки на себя, могут быть сериализованы функцией <function>igbinary_serialize</function>.
Циклические ссылки внутри сериализующихся массивов (&array;) или объектов (&object;) также будут сохранены.
Любая другая ссылка будет потеряна.
</para>
<para>
</simpara>
<simpara>
При сериализации объектов, igbinary будет пытаться вызвать функции
<link linkend="object.serialize">__serialize()</link> или <link linkend="object.sleep">__sleep()</link> перед сериализацией.
Это позволит объекту выполнить любую очистку в последнюю минуту и т.д. перед сериализацией.
Аналогичным образом, когда объект восстанавливается с помощью <function>igbinary_unserialize</function>,
вызывается функция <link linkend="object.unserialize">__unserialize()</link> или
<link linkend="object.wakeup">__wakeup()</link>.
</para>
</simpara>
<note>
<para>
<simpara>
Начало имён закрытых членов объекта (&object;) дополняются именем класса,
а начало имён защищённых членов символом <literal>'*'</literal>.
Эти дополненные значения окружаются нулевым байтом с обеих сторон.
</para>
</simpara>
</note>
</listitem>
</varlistentry>
@@ -60,16 +60,16 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
Возвращает строку, содержащую представление потока байтов <parameter>value</parameter>,
которое может быть сохранено где угодно.
</para>
<para>
</simpara>
<simpara>
Обратите внимание, что это двоичная строка, которая может включать в себя любое байтовое значение
и должна храниться и обрабатываться как таковая.
Например, вывод функции <function>igbinary_serialize</function> обычно должен храниться
в поле базы данных <literal>BLOB</literal>, а не в поле <literal>CHAR</literal> или <literal>TEXT</literal>.
</para>
</simpara>
</refsect1>
<refsect1 role="examples">
@@ -101,18 +101,18 @@ array (
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
<simpara>
Обратите внимание, что многие встроенные объекты PHP не могут быть сериализованы.
Однако те, у кого есть такая возможность, реализуют либо интерфейс <interfacename>Serializable</interfacename>,
либо магические методы <link linkend="object.serialize">__serialize()</link>/<link linkend="object.unserialize">__unserialize()</link>
или <link linkend="object.sleep">__sleep()</link>/<link linkend="object.wakeup">__wakeup()</link>.
Если внутренний класс не соответствует ни одному из этих требований,
он не может быть надёжно сериализован с помощью какого-либо сериализатора.
</para>
<para>
</simpara>
<simpara>
Есть несколько исторических исключений из приведённого выше правила, когда некоторые внутренние объекты
могут быть сериализованы без реализации интерфейса или раскрытия методов.
</para>
</simpara>
</note>
</refsect1>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: edd5686aff3f4b2d14eec931b875ee4e0e152b27 Maintainer: sergey Status: ready -->
<!-- EN-Revision: 43dd38b94fbf8a9e3efc9c5bfde27c14b9e2ce9c Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="function.igbinary-unserialize">
<refnamediv>
@@ -20,25 +20,25 @@
из функции <function>igbinary_serialize</function> и преобразовывает её обратно в PHP-значение.
</simpara>
<warning>
<para>
<simpara>
Нельзя передавать в функцию <function>igbinary_unserialize</function> ненадёжные пользовательские входные данные.
При десериализации инстанцируются объекты и автоматически загружаются классы, что ведёт к риску загрузки и выполнения кода,
чем пользуются злоумышленники. Вместо этого пользуются безопасным стандартным форматом обмена данными
наподобие JSON, который обрабатывают функциями <function>json_decode</function> и <function>json_encode</function>,
если сериализованные данные требуется передать клиенту.
</para>
<para>
</simpara>
<simpara>
Сериализованные данные внешнего хранилища проверяют функцией <function>hash_hmac</function>,
если требуется десериализовать такие данные.
Важно убедиться, что никто не подделал данные.
</para>
</simpara>
</warning>
<warning>
<para>
<simpara>
Формат сериализации модуля igbinary не различает разные ссылочные группы для одного и того же значения.
Каждая PHP-ссылка на заданное значение при десериализации обрабатывается как часть одной и той же группы ссылок,
даже если при сериализации ссылка была частью разных групп ссылок.
</para>
</simpara>
</warning>
</refsect1>
@@ -48,25 +48,25 @@
<varlistentry>
<term><parameter>str</parameter></term>
<listitem>
<para>
<simpara>
Строка, которую сериализовали функцией <function>igbinary_serialize</function>.
</para>
<para>
</simpara>
<simpara>
После успешного восстановления объекта модуль igbinary автоматически попытается вызвать
методы <link linkend="object.unserialize">__unserialize()</link> или <link linkend="object.wakeup">__wakeup()</link>,
если десериализуемое значение — объект (&object;) и методы определили в классе.
</para>
</simpara>
<note>
<title>
Директива
<link linkend="ini.unserialize-callback-func">unserialize_callback_func</link>
</title>
<para>
<simpara>
Callback-функция, которую указали в директиве <link linkend="ini.unserialize-callback-func">unserialize_callback_func</link>,
вызывается при десериализации неопределённого класса.
PHP создаст объект <classname>__PHP_Incomplete_Class</classname>,
если callback-функцию не указали.
</para>
</simpara>
</note>
</listitem>
</varlistentry>
@@ -75,35 +75,35 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
Функция возвращает преобразованное значение с типом <type>bool</type>,
<type>int</type>, <type>float</type>, <type>string</type>,
<type>array</type>, <type>object</type> или <type>null</type>.
</para>
<para>
</simpara>
<simpara>
Функция возвращает &false; и выдаёт
ошибку уровня <constant>E_NOTICE</constant> или <constant>E_WARNING</constant>,
если заданную строку невозможно десериализовать.
</para>
</simpara>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<para>
<simpara>
Иногда в своих обработчиках десериализации объекты выбрасывают исключение <classname>Throwable</classname>.
</para>
</simpara>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<warning>
<para>
<simpara>
Значение &null; или &false; возвращается как при ошибке, так и при десериализации
сериализованного значения &null; или &false;.
Этот особый случай можно определить, сравнив<parameter>str</parameter> с
<code>igbinary_serialize(null)</code> или <code>igbinary_serialize(false)</code>
или обработав выданную ошибку уровня <constant>E_NOTICE</constant>.
</para>
</simpara>
</warning>
</refsect1>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: edd5686aff3f4b2d14eec931b875ee4e0e152b27 Maintainer: sergey Status: ready -->
<!-- EN-Revision: 43dd38b94fbf8a9e3efc9c5bfde27c14b9e2ce9c Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<section xmlns="http://docbook.org/ns/docbook" xml:id="igbinary.configuration">
&reftitle.runtime;
@@ -59,10 +59,10 @@
<type>bool</type>
</term>
<listitem>
<para>
<simpara>
Включение или отключение сжатия повторяющихся строк.
По умолчанию On (включено).
</para>
</simpara>
</listitem>
</varlistentry>
@@ -72,9 +72,9 @@
<type>string</type>
</term>
<listitem>
<para>
<simpara>
Igbinary будет использоваться как обработчик сессии, если установить значение <literal>igbinary</literal>.
</para>
</simpara>
</listitem>
</varlistentry>

View File

@@ -1,25 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 605553e228c78a9368736f4ff36d185cf7e6eb22 Maintainer: sergey Status: ready -->
<!-- EN-Revision: 43dd38b94fbf8a9e3efc9c5bfde27c14b9e2ce9c Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<chapter xml:id="igbinary.setup" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="igbinary.setup">
&reftitle.setup;
<section xml:id="igbinary.installation">
&reftitle.install;
<para>
<simpara>
&pecl.moved;
</para>
<para>
</simpara>
<simpara>
&pecl.info;
<link xlink:href="&url.pecl.package;igbinary">&url.pecl.package;igbinary</link>.
</para>
<para>
</simpara>
<simpara>
&pecl.windows.download.avail;
</para>
</simpara>
</section>
&reference.igbinary.ini;
</chapter><!-- Keep this comment at the end of the file
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t