Обновление до английской версии

This commit is contained in:
Sergey Panteleev
2021-12-16 12:33:41 +03:00
parent e069b11829
commit 528a818d65
36 changed files with 1012 additions and 805 deletions

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 12b1d4704ea448b55ec155619be1e50c0e67e9f9 Maintainer: sergey Status: ready -->
<!-- EN-Revision: afbe8ad5ba46fb615d5723e25dfef4813279626f Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<sect1 xml:id="migration80.incompatible" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Изменения, ломающие обратную совместимость</title>
@ -787,15 +787,34 @@ $array["key"];
</para>
<para>
<simplelist>
<member>DOMNameList</member>
<member>DomImplementationList</member>
<member>DOMConfiguration</member>
<member>DomError</member>
<member>DomErrorHandler</member>
<member>DOMImplementationSource</member>
<member>DOMLocator</member>
<member>DOMUserDataHandler</member>
<member>DOMTypeInfo</member>
<member><classname>DOMNameList</classname></member>
<member><classname>DomImplementationList</classname></member>
<member><classname>DOMConfiguration</classname></member>
<member><classname>DomError</classname></member>
<member><classname>DomErrorHandler</classname></member>
<member><classname>DOMImplementationSource</classname></member>
<member><classname>DOMLocator</classname></member>
<member><classname>DOMUserDataHandler</classname></member>
<member><classname>DOMTypeInfo</classname></member>
<member><classname>DOMStringExtend</classname></member>
</simplelist>
</para>
<para>
Удалены нереализованные методы модуля DOM, у которых не было реализации:
</para>
<para>
<simplelist>
<member><methodname>DOMNamedNodeMap::setNamedItem</methodname></member>
<member><methodname>DOMNamedNodeMap::removeNamedItem</methodname></member>
<member><methodname>DOMNamedNodeMap::setNamedItemNS</methodname></member>
<member><methodname>DOMNamedNodeMap::removeNamedItem</methodname></member>
<member><methodname>DOMText::replaceWholeText</methodname></member>
<member><methodname>DOMNode::compareDocumentPosition</methodname></member>
<member><methodname>DOMNode::isEqualNode</methodname></member>
<member><methodname>DOMNode::getFeature</methodname></member>
<member><methodname>DOMNode::setUserData</methodname></member>
<member><methodname>DOMNode::getUserData</methodname></member>
<member><methodname>DOMDocument::renameNode</methodname></member>
</simplelist>
</para>
</sect2>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 62739864aa74b9e962493f85053229e9981d6d03 Maintainer: sergey Status: ready -->
<!-- EN-Revision: 1f7c2712868ce5ea81e8eceb8a353a9a6f790fd7 Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<chapter xml:id="language.enumerations" xmlns="http://docbook.org/ns/docbook">
<title>Перечисления</title>
@ -74,20 +74,24 @@ pick_a_card(Suit::Clubs);
pick_a_card('Spades');
?>
]]>
</programlisting>
</programlisting>
<para>
Перечисление может иметь ноль или более вариантов <literal>case</literal> без ограничений.
Перечисление без вариантов синтаксически корректно, хотя и бесполезно.
</para>
<para>
Перечисление может иметь ноль или более вариантов <literal>case</literal> без ограничений.
Перечисление без вариантов синтаксически корректно, хотя и бесполезно.
</para>
<para>
По умолчанию варианты не поддерживаются скалярным значением. То есть <literal>Suit::Hearts</literal>
не равно <literal>"0"</literal>. Вместо этого каждый вариант поддерживается одноэлементным объектом с таким именем.
Это означает, что:
</para>
<para>
Для вариантов перечисления применяются те же правила синтаксиса, что и для любой метки в PHP, смотрите <link linkend="language.constants">Константы</link>.
</para>
<programlisting role="php">
<para>
По умолчанию варианты не поддерживаются скалярным значением. То есть <literal>Suit::Hearts</literal>
не равно <literal>"0"</literal>. Вместо этого каждый вариант поддерживается одноэлементным объектом с таким именем.
Это означает, что:
</para>
<programlisting role="php">
<![CDATA[
<?php
$a = Suit::Spades;
@ -98,53 +102,53 @@ $a === $b; // true
$a instanceof Suit; // true
?>
]]>
</programlisting>
</programlisting>
<para>
Это также означает, что значения перечисления никогда не являются <literal>&lt;</literal> или <literal>&gt;</literal>
друг с другом, поскольку эти сравнения не имеют смысла для объектов.
Сравнения всегда будут возвращать false при работе с вариантами перечисления.
</para>
<para>
Это также означает, что значения перечисления никогда не являются <literal>&lt;</literal> или <literal>&gt;</literal>
друг с другом, поскольку эти сравнения не имеют смысла для объектов.
Сравнения всегда будут возвращать false при работе с вариантами перечисления.
</para>
<para>
Тип варианта без связанных данных называется "Чистый вариант". Перечисление, которое содержит только чистые варианты,
называется чистым перечислением.
</para>
<para>
Тип варианта без связанных данных называется "Чистый вариант". Перечисление, которое содержит только чистые варианты,
называется чистым перечислением.
</para>
<para>
Все чистые варианты реализованы как экземпляры своего типа перечисления.
Тип перечисления внутренне представлен как класс.
</para>
<para>
Все чистые варианты реализованы как экземпляры своего типа перечисления.
Тип перечисления внутренне представлен как класс.
</para>
<para>
У всех обращений есть свойство, доступное только для чтения, <literal>name</literal>,
которое является именем самого варианта, чувствительным к регистру. Иногда это может быть полезно для отладки.
</para>
<para>
У всех обращений есть свойство, доступное только для чтения, <literal>name</literal>,
которое является именем самого варианта, чувствительным к регистру. Иногда это может быть полезно для отладки.
</para>
<programlisting role="php">
<programlisting role="php">
<![CDATA[
<?php
print Suit::Spades->name;
// prints "Spades"
?>
]]>
</programlisting>
</programlisting>
</sect1>
</sect1>
<sect1 xml:id="language.enumerations.backed">
<title>Типизированные перечисления</title>
<sect1 xml:id="language.enumerations.backed">
<title>Типизированные перечисления</title>
<para>
По умолчанию у вариантов перечислений нет скалярного эквивалента. Это просто одноэлементные объекты.
Однако существует множество случаев, когда варианты перечислений должны иметь возможность обращаться к базе данных
или аналогичному хранилищу данных и обратно, поэтому полезно иметь встроенный скалярный
(и, следовательно, тривиально сериализуемый) эквивалент, определённый внутренне.
</para>
<para>
По умолчанию у вариантов перечислений нет скалярного эквивалента. Это просто одноэлементные объекты.
Однако существует множество случаев, когда варианты перечислений должны иметь возможность обращаться к базе данных
или аналогичному хранилищу данных и обратно, поэтому полезно иметь встроенный скалярный
(и, следовательно, тривиально сериализуемый) эквивалент, определённый внутренне.
</para>
<para>Чтобы определить скалярный эквивалент для перечислений, используйте следующий синтаксис:</para>
<para>Чтобы определить скалярный эквивалент для перечислений, используйте следующий синтаксис:</para>
<programlisting role="php">
<programlisting role="php">
<![CDATA[
<?php
@ -157,51 +161,51 @@ enum Suit: string
}
?>
]]>
</programlisting>
</programlisting>
<para>
Вариант, имеющий скалярный эквивалент, называется типизированным, поскольку он "поддерживается" более простым значением.
Перечисление, у которого все варианты типизированные, называется "типизированным перечислением".
Типизированное перечисление может содержать только типизированные варианты.
Чистое перечисление может содержать только чистые варианты.
</para>
<para>
Вариант, имеющий скалярный эквивалент, называется типизированным, поскольку он "поддерживается" более простым значением.
Перечисление, у которого все варианты типизированные, называется "типизированным перечислением".
Типизированное перечисление может содержать только типизированные варианты.
Чистое перечисление может содержать только чистые варианты.
</para>
<para>
Типизированное перечисление может поддерживаться типами <literal>int</literal> или <literal>string</literal>
и данное перечисление поддерживает только один тип за раз (то есть не допускается объединение <literal>int|string</literal>).
Если перечисление помечено как имеющее скалярный эквивалент, тогда все варианты должны иметь определённый явно уникальный скалярный эквивалент.
Не существует автоматически генерируемых скалярных эквивалентов (например, последовательных целых чисел).
Типизированные варианты должны быть уникальными; два варианта типизированных перечисления не могут иметь одного и того же скалярного эквивалента.
Однако константа может относиться к варианту, фактически создавая псевдоним.
Смотрите <link linkend="language.enumerations.constants">Константы перечислений</link>.
</para>
<para>
Типизированное перечисление может поддерживаться типами <literal>int</literal> или <literal>string</literal>
и данное перечисление поддерживает только один тип за раз (то есть не допускается объединение <literal>int|string</literal>).
Если перечисление помечено как имеющее скалярный эквивалент, тогда все варианты должны иметь определённый явно уникальный скалярный эквивалент.
Не существует автоматически генерируемых скалярных эквивалентов (например, последовательных целых чисел).
Типизированные варианты должны быть уникальными; два варианта типизированных перечисления не могут иметь одного и того же скалярного эквивалента.
Однако константа может относиться к варианту, фактически создавая псевдоним.
Смотрите <link linkend="language.enumerations.constants">Константы перечислений</link>.
</para>
<para>
Эквивалентные значения должны быть строками или строковыми выражениями.
Константы и постоянные выражения не поддерживаются. То есть <literal>1 + 1</literal> разрешено,
а <literal>1 + SOME_CONST</literal> - нет.
</para>
<para>
Эквивалентные значения должны быть строками или строковыми выражениями.
Константы и постоянные выражения не поддерживаются. То есть <literal>1 + 1</literal> разрешено,
а <literal>1 + SOME_CONST</literal> - нет.
</para>
<para>
У типизированных вариантов есть дополнительное свойство, доступное только для чтения, <literal>value</literal>,
которое является значением, указанным в определении.
</para>
<para>
У типизированных вариантов есть дополнительное свойство, доступное только для чтения, <literal>value</literal>,
которое является значением, указанным в определении.
</para>
<programlisting role="php">
<programlisting role="php">
<![CDATA[
<?php
print Suit::Clubs->value;
// Выведет "C"
?>
]]>
</programlisting>
</programlisting>
<para>
Чтобы сделать свойство <literal>value</literal> доступным только для чтения, нельзя назначить переменную в качестве ссылки на неё.
То есть следующий код выдаст ошибку:
</para>
<para>
Чтобы сделать свойство <literal>value</literal> доступным только для чтения, нельзя назначить переменную в качестве ссылки на неё.
То есть следующий код выдаст ошибку:
</para>
<programlisting role="php">
<programlisting role="php">
<![CDATA[
<?php
$suit = Suit::Clubs;
@ -209,40 +213,40 @@ $ref = &$suit->value;
// Error: Cannot acquire reference to property Suit::$value
?>
]]>
</programlisting>
</programlisting>
<para>
Типизированные перечисления реализуют внутренний интерфейс <interfacename>BackedEnum</interfacename>,
который предоставляет два дополнительных метода:
</para>
<para>
Типизированные перечисления реализуют внутренний интерфейс <interfacename>BackedEnum</interfacename>,
который предоставляет два дополнительных метода:
</para>
<simplelist>
<member>
<literal>from(int|string): self</literal> возьмёт скаляр и вернёт соответствующий вариант перечисления.
Если вариант не найден, метод выдаст <classname>ValueError</classname>.
Это полезно в тех случаях, когда входной скаляр является доверенным,
а отсутствие значения перечисления следует рассматривать как ошибку остановки приложения.
</member>
<member>
<literal>tryFrom(int|string): ?self</literal> возьмёт скаляр и вернёт соответствующий вариант перечисления.
Если вариант не найден, метод вернёт <literal>null</literal>.
Это полезно в тех случаях, когда входной скаляр не является доверенным и вызывающая функция
хочет реализовать свою собственную обработку ошибок или логику значения по умолчанию.
</member>
</simplelist>
<simplelist>
<member>
<literal>from(int|string): self</literal> возьмёт скаляр и вернёт соответствующий вариант перечисления.
Если вариант не найден, метод выдаст <classname>ValueError</classname>.
Это полезно в тех случаях, когда входной скаляр является доверенным,
а отсутствие значения перечисления следует рассматривать как ошибку остановки приложения.
</member>
<member>
<literal>tryFrom(int|string): ?self</literal> возьмёт скаляр и вернёт соответствующий вариант перечисления.
Если вариант не найден, метод вернёт <literal>null</literal>.
Это полезно в тех случаях, когда входной скаляр не является доверенным и вызывающая функция
хочет реализовать свою собственную обработку ошибок или логику значения по умолчанию.
</member>
</simplelist>
<para>
Методы <literal>from()</literal> и <literal>tryFrom()</literal> следуют стандартным правилам
слабой/строгой типизации. В режиме слабой типизации допустима передача целого числа или строки
и система соответствующим образом преобразует значение.
Передача числа с плавающей точкой также будет работать с принудительным преобразованием.
В режиме строгой типизации передача целого числа в <literal>from()</literal> в перечислении
со строковой типизацией (или наоборот) приведёт к <classname>TypeError</classname>,
как и передача числа с плавающей точкой при любых обстоятельствах.
Все остальные типы параметров вызовут ошибку TypeError в обоих режимах.
</para>
<para>
Методы <literal>from()</literal> и <literal>tryFrom()</literal> следуют стандартным правилам
слабой/строгой типизации. В режиме слабой типизации допустима передача целого числа или строки
и система соответствующим образом преобразует значение.
Передача числа с плавающей точкой также будет работать с принудительным преобразованием.
В режиме строгой типизации передача целого числа в <literal>from()</literal> в перечислении
со строковой типизацией (или наоборот) приведёт к <classname>TypeError</classname>,
как и передача числа с плавающей точкой при любых обстоятельствах.
Все остальные типы параметров вызовут ошибку TypeError в обоих режимах.
</para>
<programlisting role="php">
<programlisting role="php">
<![CDATA[
<?php
$record = get_stuff_from_database($id);
@ -259,23 +263,23 @@ $suit = Suit::tryFrom('A') ?? Suit::Spades;
print $suit->value;
?>
]]>
</programlisting>
<para>
Ручное определение метода <literal>from()</literal> или <literal>tryFrom()</literal> в типизированных перечислениях
приведёт к фатальной ошибке.
</para>
</sect1>
<sect1 xml:id="language.enumerations.methods">
<title>Методы перечислений</title>
</programlisting>
<para>
Перечисления (как чистые перечисления, так и типизированные перечисления) могут содержать методы и могут реализовывать интерфейсы.
Если перечисление реализует интерфейс, то любая проверка типа для этого интерфейса также будет принимать все варианты этого перечисления.
Ручное определение метода <literal>from()</literal> или <literal>tryFrom()</literal> в типизированных перечислениях
приведёт к фатальной ошибке.
</para>
</sect1>
<programlisting role="php">
<sect1 xml:id="language.enumerations.methods">
<title>Методы перечислений</title>
<para>
Перечисления (как чистые перечисления, так и типизированные перечисления) могут содержать методы и могут реализовывать интерфейсы.
Если перечисление реализует интерфейс, то любая проверка типа для этого интерфейса также будет принимать все варианты этого перечисления.
</para>
<programlisting role="php">
<![CDATA[
<?php
@ -314,19 +318,19 @@ paint(Suit::Clubs); // Работает
print Suit::Diamonds->shape(); // выведет "Rectangle"
?>
]]>
</programlisting>
</programlisting>
<para>
В этом примере у всех четырёх экземпляров <literal>Suit</literal> есть два метода:
<literal>color()</literal> и <literal>shape()</literal>.
Что касается вызывающего кода и проверки типов, они ведут себя точно так же, как и любой другой экземпляр объекта.
</para>
<para>
В этом примере у всех четырёх экземпляров <literal>Suit</literal> есть два метода:
<literal>color()</literal> и <literal>shape()</literal>.
Что касается вызывающего кода и проверки типов, они ведут себя точно так же, как и любой другой экземпляр объекта.
</para>
<para>
В типизированных перечислениях объявление интерфейса идёт после объявления типа.
</para>
<para>
В типизированных перечислениях объявление интерфейса идёт после объявления типа.
</para>
<programlisting role="php">
<programlisting role="php">
<![CDATA[
<?php
interface Colorful
@ -352,30 +356,30 @@ enum Suit: string implements Colorful
}
?>
]]>
</programlisting>
</programlisting>
<para>
Внутри метода определяется переменная <literal>$this</literal>, которая ссылается на экземпляр варианта.
</para>
<para>
Внутри метода определяется переменная <literal>$this</literal>, которая ссылается на экземпляр варианта.
</para>
<para>
Методы могут быть сколь угодно сложными, но на практике обычно возвращают статическое значение
или <link linkend="control-structures.match">match</link> для <literal>$this</literal>,
чтобы предоставить разные результаты для разных случаев.
</para>
<para>
Методы могут быть сколь угодно сложными, но на практике обычно возвращают статическое значение
или <link linkend="control-structures.match">match</link> для <literal>$this</literal>,
чтобы предоставить разные результаты для разных случаев.
</para>
<para>
Обратите внимание, что в этом случае было бы лучше также определить тип перечисления <literal>SuitColor</literal>
со значениями Red и Black и вернуть его вместо этого.
Однако это усложнило бы этот пример.
</para>
<para>
Обратите внимание, что в этом случае было бы лучше также определить тип перечисления <literal>SuitColor</literal>
со значениями Red и Black и вернуть его вместо этого.
Однако это усложнило бы этот пример.
</para>
<para>
Вышеупомянутая иерархия логически похожа на следующую структуру классов
(хотя это не фактический исполняемый код):
</para>
<para>
Вышеупомянутая иерархия логически похожа на следующую структуру классов
(хотя это не фактический исполняемый код):
</para>
<programlisting role="php">
<programlisting role="php">
<![CDATA[
<?php
interface Colorful
@ -413,24 +417,24 @@ final class Suit implements UnitEnum, Colorful
}
?>
]]>
</programlisting>
<para>
Методы могут быть общедоступными, закрытыми или защищёнными, хотя на практике закрытые и защищённые эквивалентны,
поскольку наследование не допускается.
</para>
</sect1>
<sect1 xml:id="language.enumerations.static-methods">
<title>Статические методы перечислений</title>
</programlisting>
<para>
Перечисления также могут иметь статические методы. Использование статических методов в самом перечислении
в первую очередь предназначено для альтернативных конструкторов. Например:
Методы могут быть общедоступными, закрытыми или защищёнными, хотя на практике закрытые и защищённые эквивалентны,
поскольку наследование не допускается.
</para>
<programlisting role="php">
</sect1>
<sect1 xml:id="language.enumerations.static-methods">
<title>Статические методы перечислений</title>
<para>
Перечисления также могут иметь статические методы. Использование статических методов в самом перечислении
в первую очередь предназначено для альтернативных конструкторов. Например:
</para>
<programlisting role="php">
<![CDATA[
<?php
enum Size
@ -450,27 +454,27 @@ enum Size
}
?>
]]>
</programlisting>
</programlisting>
<para>
Статические методы могут быть общедоступными, закрытыми или защищёнными,
хотя на практике частные и защищённые эквивалентны, поскольку наследование не допускается.
</para>
<para>
Статические методы могут быть общедоступными, закрытыми или защищёнными,
хотя на практике частные и защищённые эквивалентны, поскольку наследование не допускается.
</para>
</sect1>
</sect1>
<sect1 xml:id="language.enumerations.constants">
<title>Константы перечислений</title>
<sect1 xml:id="language.enumerations.constants">
<title>Константы перечислений</title>
<para>
Перечисления могут содержать константы, которые могут быть общедоступными,
закрытыми или защищёнными, хотя на практике закрытые и защищённые эквивалентны,
поскольку наследование не допускается.
</para>
<para>
Перечисления могут содержать константы, которые могут быть общедоступными,
закрытыми или защищёнными, хотя на практике закрытые и защищённые эквивалентны,
поскольку наследование не допускается.
</para>
<para>Константа перечисления может относиться к варианту перечисления:</para>
<para>Константа перечисления может относиться к варианту перечисления:</para>
<programlisting role="php">
<programlisting role="php">
<![CDATA[
<?php
enum Size
@ -483,20 +487,20 @@ enum Size
}
?>
]]>
</programlisting>
</sect1>
</programlisting>
</sect1>
<sect1 xml:id="language.enumerations.traits">
<title>Трейты</title>
<sect1 xml:id="language.enumerations.traits">
<title>Трейты</title>
<para>
Перечисления могут использовать трейты, которые будут вести себя так же, как и классы.
Предостережение заключается в том, что трейты, используемые (<literal>use</literal>)
в перечислении не должны содержать свойств.
Они могут включать только методы и статические методы. Трейт со свойствами приведёт к фатальной ошибке.
</para>
<para>
Перечисления могут использовать трейты, которые будут вести себя так же, как и классы.
Предостережение заключается в том, что трейты, используемые (<literal>use</literal>)
в перечислении не должны содержать свойств.
Они могут включать только методы и статические методы. Трейт со свойствами приведёт к фатальной ошибке.
</para>
<programlisting role="php">
<programlisting role="php">
<![CDATA[
<?php
interface Colorful
@ -530,28 +534,28 @@ enum Suit implements Colorful
}
?>
]]>
</programlisting>
</sect1>
</programlisting>
</sect1>
<sect1 xml:id="language.enumerations.expressions">
<title>Значения перечисления в постоянных выражениях</title>
<sect1 xml:id="language.enumerations.expressions">
<title>Значения перечисления в постоянных выражениях</title>
<para>
Поскольку варианты представлены как константы в самом перечислении,
они могут использоваться как статические значения в большинстве константных выражений:
значения по умолчанию для свойств, значения по умолчанию для статических переменных, значения по умолчанию для параметров,
глобальные значения и значения констант класса.
Они не могут использоваться в других значениях варианта перечисления, но обычные константы могут относиться к варианту перечисления.
</para>
<para>
Поскольку варианты представлены как константы в самом перечислении,
они могут использоваться как статические значения в большинстве константных выражений:
значения по умолчанию для свойств, значения по умолчанию для статических переменных, значения по умолчанию для параметров,
глобальные значения и значения констант класса.
Они не могут использоваться в других значениях варианта перечисления, но обычные константы могут относиться к варианту перечисления.
</para>
<para>
Однако неявные вызовы магических методов, таких как <classname>ArrayAccess</classname> в перечислениях,
не допускаются в статических или константных определениях, поскольку мы не можем абсолютно гарантировать,
что результирующее значение будет детерминированным или что вызов метода не будет иметь побочных эффектов.
Вызовы функций, вызовы методов и доступ к свойствам по-прежнему являются недопустимыми операциями в постоянных выражениях.
</para>
<para>
Однако неявные вызовы магических методов, таких как <classname>ArrayAccess</classname> в перечислениях,
не допускаются в статических или константных определениях, поскольку мы не можем абсолютно гарантировать,
что результирующее значение будет детерминированным или что вызов метода не будет иметь побочных эффектов.
Вызовы функций, вызовы методов и доступ к свойствам по-прежнему являются недопустимыми операциями в постоянных выражениях.
</para>
<programlisting role="php">
<programlisting role="php">
<![CDATA[
<?php
// Это полностью законное определение перечисления.
@ -580,57 +584,57 @@ class Foo
$x = Direction::Up['short'];
?>
]]>
</programlisting>
</sect1>
</programlisting>
</sect1>
<sect1 xml:id="language.enumerations.object-differences">
<title>Отличия от объектов</title>
<sect1 xml:id="language.enumerations.object-differences">
<title>Отличия от объектов</title>
<para>
Хотя перечисления построены на классах и объектах, они не поддерживают все функциональные возможности, связанные с объектами.
В частности, вариантам перечислений запрещено иметь состояние.
</para>
<para>
Хотя перечисления построены на классах и объектах, они не поддерживают все функциональные возможности, связанные с объектами.
В частности, вариантам перечислений запрещено иметь состояние.
</para>
<simplelist>
<member>Конструкторы и деструкторы запрещены.</member>
<member>Наследование не поддерживается. Перечисления не могут наследовать или наследоваться.</member>
<member>Статические свойства или свойства объекта не допускаются.</member>
<member>Клонирование варианта перечисления не поддерживается, так как варианты должны быть одноэлементными экземплярами.</member>
<member><link linkend="language.oop5.magic">Магические методы</link>, кроме перечисленных ниже, запрещены.</member>
</simplelist>
<simplelist>
<member>Конструкторы и деструкторы запрещены.</member>
<member>Наследование не поддерживается. Перечисления не могут наследовать или наследоваться.</member>
<member>Статические свойства или свойства объекта не допускаются.</member>
<member>Клонирование варианта перечисления не поддерживается, так как варианты должны быть одноэлементными экземплярами.</member>
<member><link linkend="language.oop5.magic">Магические методы</link>, кроме перечисленных ниже, запрещены.</member>
</simplelist>
<para>Доступны следующие функциональные возможности объекта, которые ведут себя так же, как и для любого другого объекта:</para>
<para>Доступны следующие функциональные возможности объекта, которые ведут себя так же, как и для любого другого объекта:</para>
<simplelist>
<member>Методы public, private и protected.</member>
<member>Статические методы public, private и protected.</member>
<member>Константы public, private и protected.</member>
<member>Перечисления могут реализовывать любое количество интерфейсов.</member>
<member>
К перечислениям и вариантам могут быть добавлены <link linkend="language.attributes">атрибуты</link>.
Целевой фильтр <constant>TARGET_CLASS</constant> включает сами перечисления.
Целевой фильтр <constant>TARGET_CLASS_CONST</constant> включает варианты перечислений.
</member>
<member>
Магические методы <link linkend="object.call">__call</link>, <link linkend="object.callstatic">__callStatic</link>,
и <link linkend="object.invoke">__invoke</link>.
</member>
<member>Константы <constant>__CLASS__</constant> и <constant>__FUNCTION__</constant> ведут себя как обычно.</member>
</simplelist>
<simplelist>
<member>Методы public, private и protected.</member>
<member>Статические методы public, private и protected.</member>
<member>Константы public, private и protected.</member>
<member>Перечисления могут реализовывать любое количество интерфейсов.</member>
<member>
К перечислениям и вариантам могут быть добавлены <link linkend="language.attributes">атрибуты</link>.
Целевой фильтр <constant>TARGET_CLASS</constant> включает сами перечисления.
Целевой фильтр <constant>TARGET_CLASS_CONST</constant> включает варианты перечислений.
</member>
<member>
Магические методы <link linkend="object.call">__call</link>, <link linkend="object.callstatic">__callStatic</link>,
и <link linkend="object.invoke">__invoke</link>.
</member>
<member>Константы <constant>__CLASS__</constant> и <constant>__FUNCTION__</constant> ведут себя как обычно.</member>
</simplelist>
<para>
Магическая константа <literal>::class</literal> для типа перечисления оценивает имя типа,
включая любое пространство имён, точно так же, как объект.
Магическая константа <literal>::class</literal> в экземпляре варианта также оценивается как тип перечисления,
поскольку она является экземпляром этого типа.
</para>
<para>
Магическая константа <literal>::class</literal> для типа перечисления оценивает имя типа,
включая любое пространство имён, точно так же, как объект.
Магическая константа <literal>::class</literal> в экземпляре варианта также оценивается как тип перечисления,
поскольку она является экземпляром этого типа.
</para>
<para>
Кроме того, варианты перечисления не могут быть созданы напрямую с помощью <literal>new</literal> или с помощью
<methodname>ReflectionClass::newInstanceWithoutConstructor</methodname>. Оба способа приведут к ошибке.
</para>
<para>
Кроме того, варианты перечисления не могут быть созданы напрямую с помощью <literal>new</literal> или с помощью
<methodname>ReflectionClass::newInstanceWithoutConstructor</methodname>. Оба способа приведут к ошибке.
</para>
<programlisting role="php">
<programlisting role="php">
<![CDATA[
<?php
$clovers = new Suit();
@ -639,44 +643,44 @@ $horseshoes = (new ReflectionClass(Suit::class))->newInstanceWithoutConstructor(
// Error: Cannot instantiate enum Suit
?>
]]>
</programlisting>
</sect1>
</programlisting>
</sect1>
<sect1 xml:id="language.enumerations.listing">
<title>Список значений</title>
<sect1 xml:id="language.enumerations.listing">
<title>Список значений</title>
<para>
И чистые перечисления, и типизированные перечисления реализуют внутренний интерфейс
с именем <interfacename>UnitEnum</interfacename>.
<literal>UnitEnum</literal> включает статический метод <literal>cases()</literal>.
<literal>cases()</literal> возвращает упакованный массив всех определённых вариантов в порядке объявления.
</para>
<para>
И чистые перечисления, и типизированные перечисления реализуют внутренний интерфейс
с именем <interfacename>UnitEnum</interfacename>.
<literal>UnitEnum</literal> включает статический метод <literal>cases()</literal>.
<literal>cases()</literal> возвращает упакованный массив всех определённых вариантов в порядке объявления.
</para>
<programlisting role="php">
<programlisting role="php">
<![CDATA[
<?php
Suit::cases();
// Produces: [Suit::Hearts, Suit::Diamonds, Suit::Clubs, Suit:Spades]
?>
]]>
</programlisting>
</programlisting>
<para>
Ручное определение метода <literal>cases()</literal> в перечислении приведёт к фатальной ошибке.
</para>
</sect1>
<para>
Ручное определение метода <literal>cases()</literal> в перечислении приведёт к фатальной ошибке.
</para>
</sect1>
<sect1 xml:id="language.enumerations.serialization">
<title>Сериализация</title>
<sect1 xml:id="language.enumerations.serialization">
<title>Сериализация</title>
<para>
Перечисления сериализуются иначе, чем объекты. В частности, у них есть новый код сериализации,
<literal>"E"</literal>, который указывает имя варианта перечисления.
Затем процедура десериализации может использовать это для установки переменной в существующее одноэлементное значение.
Это гарантирует, что:
</para>
<para>
Перечисления сериализуются иначе, чем объекты. В частности, у них есть новый код сериализации,
<literal>"E"</literal>, который указывает имя варианта перечисления.
Затем процедура десериализации может использовать это для установки переменной в существующее одноэлементное значение.
Это гарантирует, что:
</para>
<programlisting role="php">
<programlisting role="php">
<![CDATA[
<?php
Suit::Hearts === unserialize(serialize(Suit::Hearts));
@ -685,24 +689,24 @@ print serialize(Suit::Hearts);
// E:11:"Suit:Hearts";
?>
]]>
</programlisting>
</programlisting>
<para>
При десериализации, если не удаётся найти перечисление и сопоставить с соответствующим сериализованном значением,
будет выдано предупреждение и будет возвращено <literal>false</literal>.
</para>
<para>
При десериализации, если не удаётся найти перечисление и сопоставить с соответствующим сериализованном значением,
будет выдано предупреждение и будет возвращено <literal>false</literal>.
</para>
<para>
Если чистое перечисление сериализуется в JSON, будет выдана ошибка.
Если типизированное перечисление сериализуется в JSON, оно будет представлено только его скаляром значений в соответствующем типе.
Поведение обоих способов может быть изменено путём реализации <classname>JsonSerializable</classname>.
</para>
<para>
Если чистое перечисление сериализуется в JSON, будет выдана ошибка.
Если типизированное перечисление сериализуется в JSON, оно будет представлено только его скаляром значений в соответствующем типе.
Поведение обоих способов может быть изменено путём реализации <classname>JsonSerializable</classname>.
</para>
<para>
Для <function>print_r</function> вывод варианта перечисления немного отличается от объектов, чтобы свести к минимуму путаницу.
</para>
<para>
Для <function>print_r</function> вывод варианта перечисления немного отличается от объектов, чтобы свести к минимуму путаницу.
</para>
<programlisting role="php">
<programlisting role="php">
<![CDATA[
<?php
enum Foo {
@ -728,16 +732,16 @@ Baz Enum:int {
*/
?>
]]>
</programlisting>
</sect1>
</programlisting>
</sect1>
<sect1 xml:id="language.enumerations.examples">
&reftitle.examples;
<sect1 xml:id="language.enumerations.examples">
&reftitle.examples;
<para>
<example>
<title>Основные ограниченные значения</title>
<programlisting role="php">
<para>
<example>
<title>Основные ограниченные значения</title>
<programlisting role="php">
<![CDATA[
<?php
enum SortOrder
@ -749,23 +753,23 @@ enum SortOrder
function query($fields, $filter, SortOrder $order = SortOrder::ASC) { ... }
?>
]]>
</programlisting>
<para>
Функция <literal>query()</literal> теперь может безопасно работать,
зная, что <literal>$order</literal> гарантированно будет либо <literal>SortOrder::ASC</literal>,
либо <literal>SortOrder::DESC</literal>.
Любое другое значение привело бы к <classname>TypeError</classname>,
поэтому дальнейшая проверка ошибок или тестирование не требуется.
</para>
</example>
</para>
</programlisting>
<para>
Функция <literal>query()</literal> теперь может безопасно работать,
зная, что <literal>$order</literal> гарантированно будет либо <literal>SortOrder::ASC</literal>,
либо <literal>SortOrder::DESC</literal>.
Любое другое значение привело бы к <classname>TypeError</classname>,
поэтому дальнейшая проверка ошибок или тестирование не требуется.
</para>
</example>
</para>
<para>
<para>
<example>
<title>Расширенные эксклюзивные значения</title>
<example>
<title>Расширенные эксклюзивные значения</title>
<programlisting role="php">
<programlisting role="php">
<![CDATA[
<?php
enum UserStatus: string
@ -787,23 +791,23 @@ enum UserStatus: string
}
?>
]]>
</programlisting>
</programlisting>
<para>
В этом примере статус пользователя может быть одним из и следующих:
<literal>UserStatus::Pending</literal>,
<literal>UserStatus::Active</literal>, <literal>UserStatus::Suspended</literal> или
<literal>UserStatus::CanceledByUser</literal>.
Функция может ввести параметр <literal>UserStatus</literal> и затем принять только эти четыре значения, точка.
</para>
<para>
В этом примере статус пользователя может быть одним из и следующих:
<literal>UserStatus::Pending</literal>,
<literal>UserStatus::Active</literal>, <literal>UserStatus::Suspended</literal> или
<literal>UserStatus::CanceledByUser</literal>.
Функция может ввести параметр <literal>UserStatus</literal> и затем принять только эти четыре значения, точка.
</para>
<para>
У всех четырёх значений есть метод <literal>label()</literal>, который возвращает читаемою строку.
Эта строка не зависит от скалярной эквивалентной строки "machine name", которую можно использовать,
например, в поле базы данных или поле выбора HTML.
</para>
<para>
У всех четырёх значений есть метод <literal>label()</literal>, который возвращает читаемою строку.
Эта строка не зависит от скалярной эквивалентной строки "machine name", которую можно использовать,
например, в поле базы данных или поле выбора HTML.
</para>
<programlisting role="php">
<programlisting role="php">
<![CDATA[
<?php
foreach (UserStatus::cases() as $case) {
@ -811,11 +815,11 @@ foreach (UserStatus::cases() as $case) {
}
?>
]]>
</programlisting>
</example>
</para>
</programlisting>
</example>
</para>
</sect1>
</sect1>
</chapter>
<!-- Keep this comment at the end of the file

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 9d1833c4966ab899274e84aac33a72d49d8ce857 Maintainer: tmn Status: ready -->
<!-- EN-Revision: afbe8ad5ba46fb615d5723e25dfef4813279626f Maintainer: tmn Status: ready -->
<!-- Reviewed: no -->
<phpdoc:classref xmlns:phpdoc="http://php.net/ns/phpdoc" xml:id="class.domdocument" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Класс DOMDocument</title>
@ -365,6 +365,28 @@
</section>
<!-- }}} -->
<section role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.0.0</entry>
<entry>
Нереализованный метод <methodname>DOMDocument::renameNode</methodname> был удалён.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
<!-- {{{ Notes -->
<section role="notes">
&reftitle.notes;

View File

@ -1,29 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: dde024b52e6f077ca21e0c45871e1a4a63a65554 Maintainer: tmn Status: ready -->
<!-- EN-Revision: afbe8ad5ba46fb615d5723e25dfef4813279626f Maintainer: tmn Status: ready -->
<!-- Reviewed: no -->
<!--
Remove me once you perform substitutions
domnamednodemap
DOMNamedNodeMap
dom
-->
<phpdoc:classref xmlns:phpdoc="http://php.net/ns/phpdoc" xml:id="class.domnamednodemap" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Класс DOMNamedNodeMap</title>
<titleabbrev>DOMNamedNodeMap</titleabbrev>
<partintro>
<!-- {{{ DOMNamedNodeMap intro -->
<!-- FIXME:
<section xml:id="domnamednodemap.intro">
&reftitle.intro;
<para>
</para>
</section>
-->
<!-- }}} -->
<section xml:id="domnamednodemap.synopsis">
&reftitle.classsynopsis;
@ -47,7 +30,6 @@ Remove me once you perform substitutions
<!-- }}} -->
<classsynopsisinfo role="comment">&Properties;</classsynopsisinfo>
<!-- If the property is documented below (xml:id=domnamednodemap.props) use this -->
<fieldsynopsis>
<modifier>public</modifier>
<modifier>readonly</modifier>
@ -81,18 +63,30 @@ Remove me once you perform substitutions
</section>
<!-- }}} -->
<!-- {{{ See also -->
<!--
<section role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><link xlink:href="&url.spec.dom3.;">W3C specification for</link></member>
</simplelist>
</para>
<section role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.0.0</entry>
<entry>
Нереализованные методы <methodname>DOMNamedNodeMap::setNamedItem</methodname>,
<methodname>DOMNamedNodeMap::removeNamedItem</methodname>,
<methodname>DOMNamedNodeMap::setNamedItemNS</methodname> и
<methodname>DOMNamedNodeMap::removeNamedItem</methodname> были удалены.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
-->
<!-- }}} -->
</partintro>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 5fabd07880ab15b0ad2cf7eb055c7c2b36d7120f Maintainer: aur Status: ready -->
<!-- EN-Revision: afbe8ad5ba46fb615d5723e25dfef4813279626f Maintainer: aur Status: ready -->
<!-- Reviewed: no -->
<phpdoc:classref xmlns:phpdoc="http://php.net/ns/phpdoc" xml:id="class.domnode" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Класс DOMNode</title>
@ -7,15 +7,6 @@
<partintro>
<!-- {{{ DOMNode intro
<section xml:id="domnode.intro">
&reftitle.intro;
<para>
</para>
</section>
}}} -->
<section xml:id="domnode.synopsis">
&reftitle.classsynopsis;
@ -261,6 +252,32 @@
</section>
<!-- }}} -->
<section role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.0.0</entry>
<entry>
Нереализованные методы <methodname>DOMNode::compareDocumentPosition</methodname>,
<methodname>DOMNode::isEqualNode</methodname>,
<methodname>DOMNode::getFeature</methodname>,
<methodname>DOMNode::setUserData</methodname> и
<methodname>DOMNode::getUserData</methodname> были удалены.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
<!-- {{{ Notes -->
<section role="notes">
&reftitle.notes;

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 6bf4f2f0f50bd0db016494c1125527a84d1f1edd Maintainer: mch Status: ready -->
<!-- EN-Revision: afbe8ad5ba46fb615d5723e25dfef4813279626f Maintainer: mch Status: ready -->
<!-- Reviewed: no -->
<phpdoc:classref xmlns:phpdoc="http://php.net/ns/phpdoc" xml:id="class.domtext" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Класс DOMText</title>
@ -88,18 +88,28 @@
</section>
<!-- }}} -->
<!-- {{{ See also -->
<!--
<section role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><link xlink:href="&url.spec.dom3.;">W3C specification for</link></member>
</simplelist>
</para>
<section role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.0.0</entry>
<entry>
Нереализованный метод <methodname>DOMText::replaceWholeText</methodname>
был удалён.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
-->
<!-- }}} -->
</partintro>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 0c9c2dd669fe9395eaa73d487fbd160f9057429a Maintainer: shein Status: ready -->
<!-- EN-Revision: 5eb55cda5cc4bc61e94f17468c6402d631edafa5 Maintainer: shein Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.chmod" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
@ -103,6 +103,13 @@ chmod("/somedir/somefile", 0750);
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<para>
В случае возникновения ошибки выдаётся ошибка уровня <constant>E_WARNING</constant>.
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
@ -129,7 +136,8 @@ chmod("/somedir/somefile", 0750);
</para>
</refsect1>
</refentry><!-- Keep this comment at the end of the file
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t

View File

@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 2e8ef0a1bd98243cb2c6c5c627a195bb53a7a440 Maintainer: rjhdby Status: ready -->
<!-- EN-Revision: fbfbffff6b04becd008a85783f5570bdbb9bcc79 Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<phpdoc:classref xml:id="class.gmp" xmlns:phpdoc="http://php.net/ns/phpdoc" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Класс GMP</title>
@ -27,20 +26,26 @@
<section xml:id="gmp.synopsis">
<classsynopsis>
<ooclass><classname>GMP</classname></ooclass>
<ooclass>
<classname>GMP</classname>
</ooclass>
<classsynopsisinfo>
<ooclass>
<classname>GMP</classname>
</ooclass>
<oointerface>
<interfacename>Serializable</interfacename>
</oointerface>
</classsynopsisinfo>
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.gmp')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])">
<xi:fallback/>
</xi:include>
</classsynopsis>
</section>
</partintro>
&reference.gmp.entities.gmp;
</phpdoc:classref>
<!-- Keep this comment at the end of the file
Local variables:

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 83debcada46cabb98f752f24c4749f3ce88909a5 Maintainer: rjhdby Status: ready -->
<!-- EN-Revision: d231ec9e7dd19429b757b57bb0d5f6a9c7bd8fa1 Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<phpdoc:classref xmlns:phpdoc="http://php.net/ns/phpdoc" xml:id="class.OCI-Collection" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<phpdoc:classref xml:id="class.OCI-Collection" xmlns:phpdoc="http://php.net/ns/phpdoc" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Класс OCICollection</title>
<titleabbrev>OCICollection</titleabbrev>
@ -24,22 +24,24 @@
<section xml:id="OCI-Collection.synopsis">
&reftitle.classsynopsis;
<!-- {{{ Synopsis -->
<!-- {{{ Synopsis -->
<classsynopsis>
<ooclass><classname>OCICollection</classname></ooclass>
<ooclass>
<classname>OCICollection</classname>
</ooclass>
<!-- {{{ Class synopsis -->
<classsynopsisinfo>
<ooclass>
<classname>OCICollection</classname>
</ooclass>
</classsynopsisinfo>
<!-- }}} -->
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.OCI-Collection')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[@role='oop'])" />
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.OCI-Collection')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])">
<xi:fallback/>
</xi:include>
</classsynopsis>
<!-- }}} -->
<!-- }}} -->
</section>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 83debcada46cabb98f752f24c4749f3ce88909a5 Maintainer: rjhdby Status: ready -->
<!-- EN-Revision: d231ec9e7dd19429b757b57bb0d5f6a9c7bd8fa1 Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<phpdoc:classref xmlns:phpdoc="http://php.net/ns/phpdoc" xml:id="class.OCI-Lob" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<phpdoc:classref xml:id="class.OCI-Lob" xmlns:phpdoc="http://php.net/ns/phpdoc" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Класс OCILob</title>
<titleabbrev>OCILob</titleabbrev>
@ -24,22 +24,24 @@
<section xml:id="OCI-Lob.synopsis">
&reftitle.classsynopsis;
<!-- {{{ Synopsis -->
<!-- {{{ Synopsis -->
<classsynopsis>
<ooclass><classname>OCILob</classname></ooclass>
<ooclass>
<classname>OCILob</classname>
</ooclass>
<!-- {{{ Class synopsis -->
<classsynopsisinfo>
<ooclass>
<classname>OCILob</classname>
</ooclass>
</classsynopsisinfo>
<!-- }}} -->
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.OCI-Lob')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[@role='oop'])" />
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.OCI-Lob')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])">
<xi:fallback/>
</xi:include>
</classsynopsis>
<!-- }}} -->
<!-- }}} -->
</section>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: ed6de1ae20ce16c0c7be0b3fef282b6065bebfac Maintainer: shein Status: ready -->
<!-- EN-Revision: 5b4252de4f922948110fdef85c50fd94b093bc03 Maintainer: shein Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="oci-lob.close" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
@ -9,7 +9,7 @@
<refsect1 role="description">
&reftitle.description;
<methodsynopsis role="oop">
<methodsynopsis>
<modifier>public</modifier> <type>bool</type><methodname>OCILob::close</methodname>
<void/>
</methodsynopsis>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: ed6de1ae20ce16c0c7be0b3fef282b6065bebfac Maintainer: tmn Status: ready -->
<!-- EN-Revision: 5b4252de4f922948110fdef85c50fd94b093bc03 Maintainer: tmn Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="oci-lob.writetemporary" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
@ -9,7 +9,7 @@
<refsect1 role="description">
&reftitle.description;
<methodsynopsis role="oop">
<methodsynopsis>
<modifier>public</modifier> <type>bool</type><methodname>OCILob::writeTemporary</methodname>
<methodparam><type>string</type><parameter>data</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>type</parameter><initializer><constant>OCI_TEMP_CLOB</constant></initializer></methodparam>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: e41806c30bf6975e452c0d4ce35ab0984c2fa68c Maintainer: mch Status: ready -->
<!-- EN-Revision: 5b4252de4f922948110fdef85c50fd94b093bc03 Maintainer: mch Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.ob-gzhandler">
<refentry xml:id="function.ob-gzhandler" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>ob_gzhandler</refname>
<refpurpose>callback-функция, используемая для gzip-сжатия буфера вывода при вызове ob_start</refpurpose>
@ -10,9 +10,9 @@
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>string</type><methodname>ob_gzhandler</methodname>
<methodparam><type>string</type><parameter>buffer</parameter></methodparam>
<methodparam><type>int</type><parameter>mode</parameter></methodparam>
<type class="union"><type>string</type><type>false</type></type><methodname>ob_gzhandler</methodname>
<methodparam><type>string</type><parameter>data</parameter></methodparam>
<methodparam><type>int</type><parameter>flags</parameter></methodparam>
</methodsynopsis>
<para>
Функция <function>ob_gzhandler</function> предназначена для использования в
@ -33,14 +33,14 @@
<para>
<variablelist>
<varlistentry>
<term><parameter>buffer</parameter></term>
<term><parameter>data</parameter></term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>mode</parameter></term>
<term><parameter>flags</parameter></term>
<listitem>
<para>
</para>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 537b504c17430646ecb25783ce564a0af4553fb3 Maintainer: mch Status: ready -->
<!-- EN-Revision: 5b4252de4f922948110fdef85c50fd94b093bc03 Maintainer: mch Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.ob-implicit-flush">
<refentry xml:id="function.ob-implicit-flush" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>ob_implicit_flush</refname>
<refpurpose>Включение/выключение неявного сброса</refpurpose>
@ -11,7 +11,7 @@
&reftitle.description;
<methodsynopsis>
<type>void</type><methodname>ob_implicit_flush</methodname>
<methodparam choice="opt"><type>bool</type><parameter>flag</parameter><initializer>true</initializer></methodparam>
<methodparam choice="opt"><type>bool</type><parameter>enable</parameter><initializer>&true;</initializer></methodparam>
</methodsynopsis>
<para>
<function>ob_implicit_flush</function> включает или выключает неявный
@ -26,7 +26,7 @@
<para>
<variablelist>
<varlistentry>
<term><parameter>flag</parameter></term>
<term><parameter>enable</parameter></term>
<listitem>
<para>
<literal>1</literal> для включения неявного сброса, <literal>false</literal> в противном случае.
@ -58,7 +58,7 @@
<row>
<entry>8.0.0</entry>
<entry>
<parameter>flag</parameter> теперь принимает логическое значение (<type>bool</type>);
<parameter>enable</parameter> теперь принимает логическое значение (<type>bool</type>);
ранее принималось целое число (<type>int</type>).
</entry>
</row>

View File

@ -1,8 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: af4410a7e15898c3dbe83d6ea38246745ed9c6fb Maintainer: tmn Status: ready -->
<!-- EN-Revision: 642411772cb7af255fe90b1e9b53f7b0c9b33cab Maintainer: tmn Status: ready -->
<!-- Reviewed: no -->
<phpdoc:classref xmlns:phpdoc="http://php.net/ns/phpdoc" xml:id="class.pdo" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<phpdoc:classref xml:id="class.pdo" xmlns:phpdoc="http://php.net/ns/phpdoc" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Класс PDO</title>
<titleabbrev>PDO</titleabbrev>
@ -22,20 +21,23 @@
<!-- {{{ Synopsis -->
<classsynopsis>
<ooclass><classname>PDO</classname></ooclass>
<ooclass>
<classname>PDO</classname>
</ooclass>
<!-- {{{ Class synopsis -->
<classsynopsisinfo>
<ooclass>
<classname>PDO</classname>
</ooclass>
</classsynopsisinfo>
<!-- }}} -->
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.pdo')/db:refentry/db:refsect1[@role='description']/descendant::db:constructorsynopsis[1])" />
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.pdo')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[1])" />
<!-- }}} -->
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.pdo')/db:refentry/db:refsect1[@role='description']/descendant::db:constructorsynopsis[not(@role='procedural')])">
<xi:fallback/>
</xi:include>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.pdo')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])">
<xi:fallback/>
</xi:include>
</classsynopsis>
</section>

View File

@ -1,10 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 38e65393c58b006a923c5bb7878aee5c73e21b20 Maintainer: tmn Status: ready -->
<!-- EN-Revision: 642411772cb7af255fe90b1e9b53f7b0c9b33cab Maintainer: tmn Status: ready -->
<!-- Reviewed: no -->
<phpdoc:exceptionref xml:id="class.pdoexception" xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:phpdoc="http://php.net/ns/phpdoc">
<phpdoc:exceptionref xml:id="class.pdoexception" xmlns:phpdoc="http://php.net/ns/phpdoc" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Класс PDOException</title>
<titleabbrev>PDOException</titleabbrev>
@ -27,9 +24,10 @@
<!-- {{{ Synopsis -->
<classsynopsis>
<ooclass><classname>PDOException</classname></ooclass>
<ooclass>
<classname>PDOException</classname>
</ooclass>
<!-- {{{ Class synopsis -->
<classsynopsisinfo>
<ooclass>
<classname>PDOException</classname>
@ -39,30 +37,31 @@
<modifier>extends</modifier>
<classname>RuntimeException</classname>
</ooclass>
</classsynopsisinfo>
<!-- }}} -->
<classsynopsisinfo role="comment">&Properties;</classsynopsisinfo>
<fieldsynopsis><!-- {{{ errorInfo -->
<fieldsynopsis>
<modifier>public</modifier>
<type>array</type>
<type class="union"><type>array</type><type>null</type></type>
<varname linkend="pdoexception.props.errorinfo">errorInfo</varname>
</fieldsynopsis><!-- }}} -->
<fieldsynopsis><!-- {{{ code -->
<initializer>null</initializer>
</fieldsynopsis>
<fieldsynopsis>
<modifier>protected</modifier>
<type>string</type>
<varname linkend="pdoexception.props.code">code</varname>
</fieldsynopsis><!-- }}} -->
</fieldsynopsis>
<classsynopsisinfo role="comment">&InheritedProperties;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('exception.synopsis')/descendant::db:fieldsynopsis)" />
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.exception')/db:partintro/db:section/db:classsynopsis/db:fieldsynopsis[preceding-sibling::db:classsynopsisinfo[1][@role='comment' and text()='&Properties;']]))">
<xi:fallback/>
</xi:include>
<classsynopsisinfo role="comment">&InheritedMethods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook)
xpointer(id('class.exception')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[1])"
/>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.exception')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])">
<xi:fallback/>
</xi:include>
</classsynopsis>
<!-- }}} -->

View File

@ -1,8 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: b6e3147815c8efaae0157f6690792947bbe3733b Maintainer: tmn Status: ready -->
<!-- EN-Revision: 642411772cb7af255fe90b1e9b53f7b0c9b33cab Maintainer: tmn Status: ready -->
<!-- Reviewed: no -->
<phpdoc:classref xmlns:phpdoc="http://php.net/ns/phpdoc" xml:id="class.pdostatement" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<phpdoc:classref xml:id="class.pdostatement" xmlns:phpdoc="http://php.net/ns/phpdoc" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Класс PDOStatement</title>
<titleabbrev>PDOStatement</titleabbrev>
@ -23,26 +22,31 @@
<!-- {{{ Synopsis -->
<classsynopsis>
<ooclass><classname>PDOStatement</classname></ooclass>
<ooclass>
<classname>PDOStatement</classname>
</ooclass>
<!-- {{{ Class synopsis -->
<classsynopsisinfo>
<ooclass>
<classname>PDOStatement</classname>
</ooclass>
<oointerface>
<interfacename>Traversable</interfacename>
<interfacename>IteratorAggregate</interfacename>
</oointerface>
</classsynopsisinfo>
<!-- }}} -->
<classsynopsisinfo role="comment">&Properties;</classsynopsisinfo>
<fieldsynopsis><modifier>readonly</modifier> <type>string</type><varname linkend="pdostatement.props.querystring">queryString</varname></fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<type>string</type>
<varname linkend="pdostatement.props.querystring">queryString</varname>
</fieldsynopsis>
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.pdostatement')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[1])" />
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.pdostatement')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])">
<xi:fallback/>
</xi:include>
</classsynopsis>
<!-- }}} -->
</section>
@ -61,6 +65,29 @@
</variablelist>
</section>
<section role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.0.0</entry>
<entry>
<classname>PDOStatement</classname> теперь реализует интерфейс <interfacename>IteratorAggregate</interfacename>
вместо <interfacename>Traversable</interfacename>.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
</partintro>
&reference.pdo.entities.pdostatement;

View File

@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 28046efaba656e158bdf45a2585c23a339943869 Maintainer: rjhdby Status: ready -->
<!-- EN-Revision: 5b4252de4f922948110fdef85c50fd94b093bc03 Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="phar.converttodata" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>Phar::convertToData</refname>
@ -12,7 +11,7 @@
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<modifier>public</modifier> <type class="union"><type>Phar</type><type>null</type></type><methodname>Phar::convertToData</methodname>
<modifier>public</modifier> <type class="union"><type>PharData</type><type>null</type></type><methodname>Phar::convertToData</methodname>
<methodparam choice="opt"><type class="union"><type>int</type><type>null</type></type><parameter>format</parameter><initializer>&null;</initializer></methodparam>
<methodparam choice="opt"><type class="union"><type>int</type><type>null</type></type><parameter>compression</parameter><initializer>&null;</initializer></methodparam>
<methodparam choice="opt"><type class="union"><type>string</type><type>null</type></type><parameter>extension</parameter><initializer>&null;</initializer></methodparam>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 28046efaba656e158bdf45a2585c23a339943869 Maintainer: rjhdby Status: ready -->
<!-- EN-Revision: 5b4252de4f922948110fdef85c50fd94b093bc03 Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="phardata.compress" xmlns="http://docbook.org/ns/docbook">
@ -11,7 +11,7 @@
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<modifier>public</modifier> <type class="union"><type>Phar</type><type>null</type></type><methodname>PharData::compress</methodname>
<modifier>public</modifier> <type class="union"><type>PharData</type><type>null</type></type><methodname>PharData::compress</methodname>
<methodparam><type>int</type><parameter>compression</parameter></methodparam>
<methodparam choice="opt"><type class="union"><type>string</type><type>null</type></type><parameter>extension</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>

View File

@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 28046efaba656e158bdf45a2585c23a339943869 Maintainer: rjhdby Status: ready -->
<!-- EN-Revision: 5b4252de4f922948110fdef85c50fd94b093bc03 Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="phardata.converttodata" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>PharData::convertToData</refname>
@ -12,7 +11,7 @@
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<modifier>public</modifier> <type class="union"><type>Phar</type><type>null</type></type><methodname>PharData::convertToData</methodname>
<modifier>public</modifier> <type class="union"><type>PharData</type><type>null</type></type><methodname>PharData::convertToData</methodname>
<methodparam choice="opt"><type class="union"><type>int</type><type>null</type></type><parameter>format</parameter><initializer>&null;</initializer></methodparam>
<methodparam choice="opt"><type class="union"><type>int</type><type>null</type></type><parameter>compression</parameter><initializer>&null;</initializer></methodparam>
<methodparam choice="opt"><type class="union"><type>string</type><type>null</type></type><parameter>extension</parameter><initializer>&null;</initializer></methodparam>

View File

@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 28046efaba656e158bdf45a2585c23a339943869 Maintainer: rjhdby Status: ready -->
<!-- EN-Revision: 5b4252de4f922948110fdef85c50fd94b093bc03 Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="phardata.decompress" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>PharData::decompress</refname>
@ -11,7 +10,7 @@
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<modifier>public</modifier> <type class="union"><type>Phar</type><type>null</type></type><methodname>PharData::decompress</methodname>
<modifier>public</modifier> <type class="union"><type>PharData</type><type>null</type></type><methodname>PharData::decompress</methodname>
<methodparam choice="opt"><type class="union"><type>string</type><type>null</type></type><parameter>extension</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>

View File

@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 6ec0096178dba7d0619c2e421f70b130825743c2 Maintainer: lex Status: ready -->
<!-- EN-Revision: 591a6aa1de58dfa1508b63a6ca5ac5051ad89324 Maintainer: lex Status: ready -->
<!-- Reviewed: no -->
<phpdoc:classref xml:id="class.sessionupdatetimestamphandlerinterface" xmlns:phpdoc="http://php.net/ns/phpdoc" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Интерфейс SessionUpdateTimestampHandlerInterface</title>
@ -31,29 +30,27 @@
<!-- {{{ Synopsis -->
<classsynopsis>
<ooclass><classname>SessionUpdateTimestampHandlerInterface</classname></ooclass>
<ooclass>
<classname>SessionUpdateTimestampHandlerInterface</classname>
</ooclass>
<!-- {{{ Class synopsis -->
<classsynopsisinfo>
<ooclass>
<classname>SessionUpdateTimestampHandlerInterface</classname>
</ooclass>
<oointerface>
<interfacename>SessionUpdateTimestampHandlerInterface</interfacename>
</oointerface>
</classsynopsisinfo>
<!-- }}} -->
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<!-- <xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.sessionupdatetimestamphandlerinterface')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])" />
-->
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.sessionupdatetimestamphandlerinterface')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])">
<xi:fallback/>
</xi:include>
</classsynopsis>
<!-- }}} -->
</section>
</partintro>
<!-- todo
&reference.session.entities.sessionupdatetimestamphandlerinterface;
-->
&reference.session.entities.sessionupdatetimestamphandlerinterface;
</phpdoc:classref>
<!-- Keep this comment at the end of the file

View File

@ -1,12 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: b95e76e41de2ffe5c75e04be1b187d80ca745359 Maintainer: rjhdby Status: ready -->
<!-- EN-Revision: df004654982c5a6f1a3f6136e5cf03eb188d61e7 Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<phpdoc:classref xml:id="class.snmp"
xmlns:phpdoc="http://php.net/ns/phpdoc"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns="http://docbook.org/ns/docbook">
<phpdoc:classref xml:id="class.snmp" xmlns:phpdoc="http://php.net/ns/phpdoc" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns="http://docbook.org/ns/docbook">
<title>Класс SNMP</title>
<titleabbrev>SNMP</titleabbrev>
@ -24,71 +19,67 @@ xmlns="http://docbook.org/ns/docbook">
<section xml:id="snmp.synopsis">
&reftitle.classsynopsis;
<!-- {{{ Synopsis -->
<classsynopsis>
<ooclass><classname>SNMP</classname></ooclass>
<!-- {{{ Synopsis -->
<classsynopsis>
<ooclass>
<classname>SNMP</classname>
</ooclass>
<!-- {{{ Class synopsis -->
<classsynopsisinfo>
<ooclass>
<classname>SNMP</classname>
</ooclass>
</classsynopsisinfo>
<!-- }}} -->
<classsynopsisinfo>
<ooclass>
<classname>SNMP</classname>
</ooclass>
</classsynopsisinfo>
<classsynopsisinfo role="comment">&Properties;</classsynopsisinfo>
<fieldsynopsis>
<modifier>public</modifier>
<type>int</type>
<varname linkend="snmp.props.max-oids">max_oids</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<type>int</type>
<varname linkend="snmp.props.valueretrieval">valueretrieval</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<type>bool</type>
<varname linkend="snmp.props.quick-print">quick_print</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<type>bool</type>
<varname linkend="snmp.props.enum-print">enum_print</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<type>int</type>
<varname linkend="snmp.props.oid-output-format">oid_output_format</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<type>bool</type>
<varname linkend="snmp.props.oid-increasing-check">oid_increasing_check</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<type>int</type>
<varname linkend="snmp.props.exceptions-enabled">exceptions_enabled</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<type>array</type>
<varname linkend="snmp.props.info">info</varname>
</fieldsynopsis>
<classsynopsisinfo role="comment">&Properties;</classsynopsisinfo>
<fieldsynopsis>
<modifier>public</modifier>
<modifier>readonly</modifier>
<type>array</type>
<varname linkend="snmp.props.info">info</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<type class="union"><type>int</type><type>null</type></type>
<varname linkend="snmp.props.max-oids">max_oids</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<type>int</type>
<varname linkend="snmp.props.valueretrieval">valueretrieval</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<type>bool</type>
<varname linkend="snmp.props.quick-print">quick_print</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<type>bool</type>
<varname linkend="snmp.props.enum-print">enum_print</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<type>int</type>
<varname linkend="snmp.props.oid-output-format">oid_output_format</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<type>bool</type>
<varname linkend="snmp.props.oid-increasing-check">oid_increasing_check</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<type>int</type>
<varname linkend="snmp.props.exceptions-enabled">exceptions_enabled</varname>
</fieldsynopsis>
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.snmp')/db:refentry/db:refsect1[@role='description']/descendant::db:constructorsynopsis[not(@role='procedural')])">
<xi:fallback />
</xi:include>
<!--
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.snmp')/db:refentry/db:refsect1[@role='description']/descendant::db:destructorsynopsis[not(@role='procedural')])">
<xi:fallback />
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.snmp')/db:refentry/db:refsect1[@role='description']/descendant::db:constructorsynopsis[not(@role='procedural')])">
<xi:fallback/>
</xi:include>
-->
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.snmp')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])">
<xi:fallback />
<xi:fallback/>
</xi:include>
<classsynopsisinfo role="comment">&Constants;</classsynopsisinfo>
@ -165,7 +156,7 @@ xmlns="http://docbook.org/ns/docbook">
<initializer>3</initializer>
</fieldsynopsis>
<!-- }}} -->
<!-- }}} -->
</classsynopsis>
@ -380,21 +371,21 @@ xmlns="http://docbook.org/ns/docbook">
<varlistentry xml:id="snmp.class.constants.version-1">
<term><constant>SNMP::VERSION_1</constant></term>
<listitem>
<para></para>
<para/>
</listitem>
</varlistentry>
<varlistentry xml:id="snmp.class.constants.version-2c">
<term><constant>SNMP::VERSION_2C</constant>, <constant>SNMP::VERSION_2c</constant></term>
<listitem>
<para></para>
<para/>
</listitem>
</varlistentry>
<varlistentry xml:id="snmp.class.constants.version-3">
<term><constant>SNMP::VERSION_3</constant></term>
<listitem>
<para></para>
<para/>
</listitem>
</varlistentry>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 7f99d5e488d161ce3b12d1dae405a283728933c3 Maintainer: sergey Status: ready -->
<!-- EN-Revision: 5b4252de4f922948110fdef85c50fd94b093bc03 Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="snmp.get" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
@ -11,7 +11,7 @@
&reftitle.description;
<methodsynopsis>
<modifier>public</modifier> <type class="union"><type>array</type><type>bool</type></type><methodname>SNMP::get</methodname>
<modifier>public</modifier> <type>mixed</type><methodname>SNMP::get</methodname>
<methodparam><type class="union"><type>array</type><type>string</type></type><parameter>objectId</parameter></methodparam>
<methodparam choice="opt"><type>bool</type><parameter>preserveKeys</parameter><initializer>&false;</initializer></methodparam>
</methodsynopsis>

View File

@ -1,11 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 38e65393c58b006a923c5bb7878aee5c73e21b20 Maintainer: rjhdby Status: ready -->
<!-- EN-Revision: df004654982c5a6f1a3f6136e5cf03eb188d61e7 Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<phpdoc:exceptionref xml:id="class.snmpexception" xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:phpdoc="http://php.net/ns/phpdoc">
<phpdoc:exceptionref xml:id="class.snmpexception" xmlns:phpdoc="http://php.net/ns/phpdoc" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Класс SNMPException</title>
<titleabbrev>SNMPException</titleabbrev>
@ -26,41 +22,41 @@ xmlns:phpdoc="http://php.net/ns/phpdoc">
<section xml:id="snmpexception.synopsis">
&reftitle.classsynopsis;
<!-- {{{ Synopsis -->
<classsynopsis>
<ooclass><classname>SNMPException</classname></ooclass>
<!-- {{{ Synopsis -->
<classsynopsis>
<ooclass>
<classname>SNMPException</classname>
</ooclass>
<!-- {{{ Class synopsis -->
<classsynopsisinfo>
<ooclass>
<classname>SNMPException</classname>
</ooclass>
<classsynopsisinfo>
<ooclass>
<classname>SNMPException</classname>
</ooclass>
<ooclass>
<modifier>extends</modifier>
<classname>RuntimeException</classname>
</ooclass>
<ooclass>
<modifier>extends</modifier>
<classname>RuntimeException</classname>
</ooclass>
</classsynopsisinfo>
</classsynopsisinfo>
<!-- }}} -->
<classsynopsisinfo role="comment">&Properties;</classsynopsisinfo>
<fieldsynopsis><!-- {{{ code -->
<modifier>protected</modifier>
<type>string</type>
<varname linkend="snmpexception.props.code">code</varname>
</fieldsynopsis><!-- }}} -->
<classsynopsisinfo role="comment">&Properties;</classsynopsisinfo>
<fieldsynopsis><!-- {{{ code -->
<modifier>protected</modifier>
<type>string</type>
<varname linkend="snmpexception.props.code">code</varname>
</fieldsynopsis><!-- }}} -->
<classsynopsisinfo role="comment">&InheritedProperties;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('exception.synopsis')/descendant::db:fieldsynopsis)" />
<classsynopsisinfo role="comment">&InheritedMethods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook)
xpointer(id('class.exception')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[1])"
/>
<classsynopsisinfo role="comment">&InheritedProperties;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.exception')/db:partintro/db:section/db:classsynopsis/db:fieldsynopsis[preceding-sibling::db:classsynopsisinfo[1][@role='comment' and text()='&Properties;']]))">
<xi:fallback/>
</xi:include>
<classsynopsisinfo role="comment">&InheritedMethods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.exception')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])">
<xi:fallback/>
</xi:include>
</classsynopsis>
<!-- }}} -->
<!-- }}} -->
</section>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: b95d28e6ec86e4a71e012737d36ebdc1cf009180 Maintainer: mch Status: ready -->
<!-- EN-Revision: c3067ab0a7f55632c87da73368fd3c739e110a57 Maintainer: mch Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.stream-get-contents" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
@ -10,15 +10,15 @@
&reftitle.description;
<methodsynopsis>
<type class="union"><type>string</type><type>false</type></type><methodname>stream_get_contents</methodname>
<methodparam><type>resource</type><parameter>handle</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>maxlength</parameter><initializer>-1</initializer></methodparam>
<methodparam><type>resource</type><parameter>stream</parameter></methodparam>
<methodparam choice="opt"><type class="union"><type>int</type><type>null</type></type><parameter>length</parameter><initializer>&null;</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>offset</parameter><initializer>-1</initializer></methodparam>
</methodsynopsis>
<para>
Похожа на функцию <function>file_get_contents</function>, за исключением того, что
<function>stream_get_contents</function> работает с уже открытым
ресурсом потока и возвращает оставшуюся часть содержимого в строку размером до
<parameter>maxlength</parameter> байт и начиная с указанного смещения
<parameter>length</parameter> байт и начиная с указанного смещения
<parameter>offset</parameter>.
</para>
</refsect1>
@ -28,7 +28,7 @@
<para>
<variablelist>
<varlistentry>
<term><parameter>handle</parameter> (<type>resource</type>)</term>
<term><parameter>stream</parameter> (<type>resource</type>)</term>
<listitem>
<para>
Ресурс потока (например, полученный при помощи функции <function>fopen</function>)
@ -36,10 +36,10 @@
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>maxlength</parameter> (<type>int</type>)</term>
<term><parameter>length</parameter> (<type>int</type>)</term>
<listitem>
<para>
Максимальное количество байт для чтения. По умолчанию -1 (прочитать весь оставшийся
Максимальное количество байт для чтения. По умолчанию &null; (прочитать весь оставшийся
буфер).
</para>
</listitem>
@ -64,6 +64,28 @@
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.0.0</entry>
<entry>
<parameter>length</parameter> теперь допускает значение null.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 9a37893b543ee7d558ac8cbebbc6d1f0caf719f2 Maintainer: mch Status: ready -->
<!-- EN-Revision: c3067ab0a7f55632c87da73368fd3c739e110a57 Maintainer: mch Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.stream-get-line" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
@ -9,8 +9,8 @@
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>string</type><methodname>stream_get_line</methodname>
<methodparam><type>resource</type><parameter>handle</parameter></methodparam>
<type class="union"><type>string</type><type>false</type></type><methodname>stream_get_line</methodname>
<methodparam><type>resource</type><parameter>stream</parameter></methodparam>
<methodparam><type>int</type><parameter>length</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>ending</parameter><initializer>""</initializer></methodparam>
</methodsynopsis>
@ -35,7 +35,7 @@
<para>
<variablelist>
<varlistentry>
<term><parameter>handle</parameter></term>
<term><parameter>stream</parameter></term>
<listitem>
<para>
Допустимый дескриптор файла.
@ -68,11 +68,8 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Возвращает строку длиной до <parameter>length</parameter> байт, прочитанную из файла
указанного параметром <parameter>handle</parameter>.
</para>
<para>
Если возникает ошибка, возвращает &false;.
Возвращает строку длиной до <parameter>length</parameter> байт, прочитанную из файла
указанного параметром <parameter>stream</parameter>&return.falseforfailure;.
</para>
</refsect1>

View File

@ -1,21 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 4754397753fd79f1c846868b66a2448babab1c54 Maintainer: mch Status: ready -->
<!-- EN-Revision: 98e904a628efa52d57037af46adf3f0021c3d297 Maintainer: mch Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.stream-select" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>stream_select</refname>
<refpurpose>Запускает эквивалент системного вызова select() на заданных массивах
потоков с таймаутом, указанным параметрами tv_sec и tv_usec </refpurpose>
потоков с таймаутом, указанным параметрами seconds и microseconds </refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>int</type><methodname>stream_select</methodname>
<methodparam><type>array</type><parameter role="reference">read</parameter></methodparam>
<methodparam><type>array</type><parameter role="reference">write</parameter></methodparam>
<methodparam><type>array</type><parameter role="reference">except</parameter></methodparam>
<methodparam><type>int</type><parameter>tv_sec</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>tv_usec</parameter><initializer>0</initializer></methodparam>
<type class="union"><type>int</type><type>false</type></type><methodname>stream_select</methodname>
<methodparam><type class="union"><type>array</type><type>null</type></type><parameter role="reference">read</parameter></methodparam>
<methodparam><type class="union"><type>array</type><type>null</type></type><parameter role="reference">write</parameter></methodparam>
<methodparam><type class="union"><type>array</type><type>null</type></type><parameter role="reference">except</parameter></methodparam>
<methodparam><type class="union"><type>int</type><type>null</type></type><parameter>seconds</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>microseconds</parameter><initializer>0</initializer></methodparam>
</methodsynopsis>
<para>
Функция <function>stream_select</function> получает массивы потоков и ждёт
@ -68,22 +68,22 @@
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>tv_sec</parameter></term>
<term><parameter>seconds</parameter></term>
<listitem>
<para>
Параметры <parameter>tv_sec</parameter> и <parameter>tv_usec</parameter>
Параметры <parameter>seconds</parameter> и <parameter>microseconds</parameter>
вместе формируют параметр <emphasis>timeout</emphasis>,
<parameter>tv_sec</parameter> указывает число секунд, а
<parameter>tv_usec</parameter> - число микросекунд.
<parameter>seconds</parameter> указывает число секунд, а
<parameter>microseconds</parameter> - число микросекунд.
Параметр <parameter>timeout</parameter> - это верхняя граница времени,
которое функция <function>stream_select</function> будет ожидать до возвращения.
Если параметры <parameter>tv_sec</parameter> и <parameter>tv_usec</parameter>
Если параметры <parameter>seconds</parameter> и <parameter>microseconds</parameter>
оба установлены в <literal>0</literal>, то функция <function>stream_select</function>
не будет ожидать данных - вместо этого она вернётся немедленно, указывая текущий
статус потоков.
</para>
<para>
Если параметр <parameter>tv_sec</parameter> равен &null;, то функция <function>stream_select</function>
Если параметр <parameter>seconds</parameter> равен &null;, то функция <function>stream_select</function>
может выполняться неопределённое время, возвращаясь только тогда, когда происходит событие на одном из
отслеживаемых потоков (или если системный вызов прерывается сигналом).
</para>
@ -109,10 +109,10 @@
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>tv_usec</parameter></term>
<term><parameter>microseconds</parameter></term>
<listitem>
<para>
Смотрите описание параметра <parameter>tv_sec</parameter>.
Смотрите описание параметра <parameter>seconds</parameter>.
</para>
</listitem>
</varlistentry>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 56293cbaa639e0a883b7135a1121b0e3f9ee215b Maintainer: mch Status: ready -->
<!-- EN-Revision: c3067ab0a7f55632c87da73368fd3c739e110a57 Maintainer: mch Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.stream-set-write-buffer" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
@ -11,11 +11,11 @@
<methodsynopsis>
<type>int</type><methodname>stream_set_write_buffer</methodname>
<methodparam><type>resource</type><parameter>stream</parameter></methodparam>
<methodparam><type>int</type><parameter>buffer</parameter></methodparam>
<methodparam><type>int</type><parameter>size</parameter></methodparam>
</methodsynopsis>
<para>
Устанавливает буферизацию для операций записи на заданном потоке <parameter>stream</parameter>
в число <parameter>buffer</parameter> байт.
в число <parameter>size</parameter> байт.
</para>
</refsect1>
@ -32,10 +32,10 @@
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>buffer</parameter></term>
<term><parameter>size</parameter></term>
<listitem>
<para>
Число байт для буферизации. Если аргумент <parameter>buffer</parameter>
Число байт для буферизации. Если аргумент <parameter>size</parameter>
равен 0, то операции записи не буферизуются. Это гарантирует, что все операции записи
с использованием функции <function>fwrite</function> будут завершены перед тем, как другим процессам
будет разрешено записывать в поток вывода.

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: b95d28e6ec86e4a71e012737d36ebdc1cf009180 Maintainer: mch Status: ready -->
<!-- EN-Revision: c3067ab0a7f55632c87da73368fd3c739e110a57 Maintainer: mch Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.stream-socket-accept" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
@ -11,9 +11,9 @@
&reftitle.description;
<methodsynopsis>
<type class="union"><type>resource</type><type>false</type></type><methodname>stream_socket_accept</methodname>
<methodparam><type>resource</type><parameter>server_socket</parameter></methodparam>
<methodparam choice="opt"><type>float</type><parameter>timeout</parameter><initializer>ini_get("default_socket_timeout")</initializer></methodparam>
<methodparam choice="opt"><type>string</type><parameter role="reference">peername</parameter></methodparam>
<methodparam><type>resource</type><parameter>socket</parameter></methodparam>
<methodparam choice="opt"><type class="union"><type>float</type><type>null</type></type><parameter>timeout</parameter><initializer>&null;</initializer></methodparam>
<methodparam choice="opt"><type>string</type><parameter role="reference">peer_name</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>
<para>
Принимать соединение в сокете, предварительно созданном с помощью функции
@ -26,7 +26,7 @@
<para>
<variablelist>
<varlistentry>
<term><parameter>server_socket</parameter></term>
<term><parameter>socket</parameter></term>
<listitem>
<para>
Серверный сокет для принятия соединения.
@ -38,12 +38,12 @@
<listitem>
<para>
Переопределять тайм-аут подключения сокета по умолчанию. Время должно быть указано в
секундах.
секундах. По умолчанию используется значение <link linkend="ini.default-socket-timeout">default_socket_timeout</link>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>peername</parameter></term>
<term><parameter>peer_name</parameter></term>
<listitem>
<para>
Будет присвоено имя (адрес) клиента, который подсоединился, если оно
@ -68,6 +68,28 @@
</para>
</refsect1><!-- }}} -->
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.0.0</entry>
<entry>
<parameter>timeout</parameter> теперь допускает значение null.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="notes"><!-- {{{ -->
&reftitle.notes;
<warning>
@ -92,7 +114,7 @@
<member><function>fwrite</function></member>
<member><function>fclose</function></member>
<member><function>feof</function></member>
<member><xref linkend="ref.curl" /></member>
<member><xref linkend="ref.curl"/></member>
</simplelist>
</para>
</refsect1><!-- }}} -->

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: e41806c30bf6975e452c0d4ce35ab0984c2fa68c Maintainer: mch Status: ready -->
<!-- EN-Revision: c3067ab0a7f55632c87da73368fd3c739e110a57 Maintainer: mch Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.stream-socket-client" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
@ -10,23 +10,23 @@
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>resource</type><methodname>stream_socket_client</methodname>
<methodparam><type>string</type><parameter>remote_socket</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter role="reference">errno</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter role="reference">errstr</parameter></methodparam>
<methodparam choice="opt"><type>float</type><parameter>timeout</parameter><initializer>ini_get("default_socket_timeout")</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>flags</parameter><initializer>STREAM_CLIENT_CONNECT</initializer></methodparam>
<methodparam choice="opt"><type>resource</type><parameter>context</parameter></methodparam>
<type class="union"><type>resource</type><type>false</type></type><methodname>stream_socket_client</methodname>
<methodparam><type>string</type><parameter>address</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter role="reference">error_code</parameter><initializer>&null;</initializer></methodparam>
<methodparam choice="opt"><type>string</type><parameter role="reference">error_message</parameter><initializer>&null;</initializer></methodparam>
<methodparam choice="opt"><type class="union"><type>float</type><type>null</type></type><parameter>timeout</parameter><initializer>&null;</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>flags</parameter><initializer><constant>STREAM_CLIENT_CONNECT</constant></initializer></methodparam>
<methodparam choice="opt"><type class="union"><type>resource</type><type>null</type></type><parameter>context</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>
<para>
Начинает соединение потока или датаграммы с удалённым сокетом, указанным
параметром <parameter>remote_socket</parameter>. Тип создаваемого сокета
параметром <parameter>address</parameter>. Тип создаваемого сокета
определяется по транспорту, указанному с использованием стандартного форматирования URL:
<literal>transport://target</literal>. Для интернет-сокетов,
(AF_INET) таких, как TCP и UDP, часть <literal>target</literal>
параметра <parameter>remote_socket</parameter> должна состоять из
параметра <parameter>address</parameter> должна состоять из
имени хоста или IP-адреса, за которым следует двоеточие и номер порта. Для доменных
сокетов Unix, часть <parameter>target</parameter> должна указывать на
сокетов Unix, часть <literal>target</literal> должна указывать на
файл сокета в файловой системе.
</para>
<note>
@ -43,7 +43,7 @@
<para>
<variablelist>
<varlistentry>
<term><parameter>remote_socket</parameter></term>
<term><parameter>address</parameter></term>
<listitem>
<para>
Адрес удалённого сокета для соединения.
@ -51,7 +51,7 @@
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>errno</parameter></term>
<term><parameter>error_code</parameter></term>
<listitem>
<para>
Будет присвоен номер системной ошибки, если соединение не удалось установить.
@ -59,7 +59,7 @@
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>errstr</parameter></term>
<term><parameter>error_message</parameter></term>
<listitem>
<para>
Будет присвоено сообщение о системной ошибке, если соединение не удалось установить.
@ -71,7 +71,7 @@
<listitem>
<para>
Число секунд, в течение которых должен произойти тайм-аут системного
вызова <literal>connect()</literal>.
вызова <literal>connect()</literal>. По умолчанию используется значение <link linkend="ini.default-socket-timeout">default_socket_timeout</link>.
<note>
<simpara>
Этот параметр применяется только если не происходит попытка
@ -124,19 +124,41 @@
</para>
</refsect1><!-- }}} -->
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.0.0</entry>
<entry>
<parameter>timeout</parameter> и <parameter>context</parameter> теперь допускают значение null.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="errors"><!-- {{{ -->
&reftitle.errors;
<para>
В случае неудачного вызова функции аргументы <parameter>errno</parameter> и
<parameter>errstr</parameter> будут заполнены системной ошибкой,
В случае неудачного вызова функции аргументы <parameter>error_code</parameter> и
<parameter>error_message</parameter> будут заполнены системной ошибкой,
которая произошла при системном вызове
<literal>connect()</literal>. Если значение, возвращённое в аргументе
<parameter>errno</parameter> равно <literal>0</literal> и функция
<parameter>error_code</parameter> равно <literal>0</literal> и функция
возвратила значение &false;, это означает, что ошибка
произошла до вызова <literal>connect()</literal>. Это произошло
скорее всего из-за проблемы инициализации сокета. Примите во внимание,
что аргументы <parameter>errno</parameter> и
<parameter>errstr</parameter> всегда будут передаваться по ссылке.
что аргументы <parameter>error_code</parameter> и
<parameter>error_message</parameter> всегда будут передаваться по ссылке.
</para>
</refsect1><!-- }}} -->
@ -224,7 +246,7 @@ if (!$fp) {
<member><function>fwrite</function></member>
<member><function>fclose</function></member>
<member><function>feof</function></member>
<member><xref linkend="ref.curl" /></member>
<member><xref linkend="ref.curl"/></member>
</simplelist>
</para>
</refsect1><!-- }}} -->

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 5fabd07880ab15b0ad2cf7eb055c7c2b36d7120f Maintainer: mch Status: ready -->
<!-- EN-Revision: c3067ab0a7f55632c87da73368fd3c739e110a57 Maintainer: mch Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.stream-socket-enable-crypto" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
@ -10,11 +10,11 @@
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>mixed</type><methodname>stream_socket_enable_crypto</methodname>
<type class="union"><type>int</type><type>bool</type></type><methodname>stream_socket_enable_crypto</methodname>
<methodparam><type>resource</type><parameter>stream</parameter></methodparam>
<methodparam><type>bool</type><parameter>enable</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>crypto_type</parameter></methodparam>
<methodparam choice="opt"><type>resource</type><parameter>session_stream</parameter></methodparam>
<methodparam choice="opt"><type class="union"><type>int</type><type>null</type></type><parameter>crypto_method</parameter><initializer>&null;</initializer></methodparam>
<methodparam choice="opt"><type class="union"><type>resource</type><type>null</type></type><parameter>session_stream</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>
<simpara>
@ -49,7 +49,7 @@
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>crypto_type</parameter></term>
<term><parameter>crypto_method</parameter></term>
<listitem>
<para>
Включить шифрование на потоке.
@ -100,6 +100,28 @@
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.0.0</entry>
<entry>
<parameter>session_stream</parameter> теперь допускает значение null.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="examples"><!-- {{{ -->
&reftitle.examples;
<para>
@ -142,8 +164,8 @@ fclose($fp);
&reftitle.seealso;
<para>
<simplelist>
<member><xref linkend="ref.openssl" /></member>
<member><xref linkend="transports" /></member>
<member><xref linkend="ref.openssl"/></member>
<member><xref linkend="transports"/></member>
</simplelist>
</para>
</refsect1><!-- }}} -->

View File

@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 8c2f198903a9238344ba450128facd53acc47089 Maintainer: tmn Status: ready -->
<!-- EN-Revision: cd46fa89d3dc46edc60fa3d144dfcae5d93b2a3c Maintainer: tmn Status: ready -->
<!-- Reviewed: no -->
<phpdoc:classref xml:id="class.php-user-filter" xmlns:phpdoc="http://php.net/ns/phpdoc" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Класс php_user_filter</title>
@ -27,34 +26,45 @@
<!-- {{{ Synopsis -->
<classsynopsis>
<ooclass><classname>php_user_filter</classname></ooclass>
<ooclass>
<classname>php_user_filter</classname>
</ooclass>
<!-- {{{ Class synopsis -->
<classsynopsisinfo>
<ooclass>
<classname>php_user_filter</classname>
</ooclass>
</classsynopsisinfo>
<!-- }}} -->
<classsynopsisinfo role="comment">&Properties;</classsynopsisinfo>
<fieldsynopsis>
<modifier>public</modifier>
<type>string</type>
<varname linkend="php-user-filter.props.filtername">filtername</varname>
<initializer>""</initializer>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<type>mixed</type>
<varname linkend="php-user-filter.props.params">params</varname>
<initializer>""</initializer>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<type class="union"><type>resource</type><type>null</type></type>
<varname linkend="php-user-filter.props.stream">stream</varname>
<initializer>null</initializer>
</fieldsynopsis>
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.php-user-filter')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[1])" />
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.php-user-filter')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])">
<xi:fallback/>
</xi:include>
</classsynopsis>
<!-- }}} -->
</section>
<!-- {{{ php_user_filter properties -->
<section xml:id="php-user-filter.props">
&reftitle.properties;
@ -71,14 +81,19 @@
<varlistentry xml:id="php-user-filter.props.params">
<term><varname>params</varname></term>
<listitem>
<para></para>
<para/>
</listitem>
</varlistentry>
<varlistentry xml:id="php-user-filter.props.stream">
<term><varname>stream</varname></term>
<listitem>
<para/>
</listitem>
</varlistentry>
</variablelist>
</section>
<!-- }}} -->
</partintro>
&reference.stream.entities.php-user-filter;

View File

@ -1,10 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 4724b47c25b48f509355d27291aa6893ad0b40c0 Maintainer: mch Status: ready -->
<!-- EN-Revision: 2800b9fe1eabee40655778c8257b220dbc5d247a Maintainer: mch Status: ready -->
<!-- Reviewed: no -->
<phpdoc:classref xml:id="class.xmlreader" xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:phpdoc="http://php.net/ns/phpdoc">
<phpdoc:classref xml:id="class.xmlreader" xmlns:phpdoc="http://php.net/ns/phpdoc" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Класс XMLReader</title>
<titleabbrev>XMLReader</titleabbrev>
@ -26,15 +23,15 @@
<!-- {{{ Synopsis -->
<classsynopsis>
<ooclass><classname>XMLReader</classname></ooclass>
<ooclass>
<classname>XMLReader</classname>
</ooclass>
<!-- {{{ Class synopsis -->
<classsynopsisinfo>
<ooclass>
<classname>XMLReader</classname>
</ooclass>
</classsynopsisinfo>
<!-- }}} -->
<classsynopsisinfo role="comment">&Constants;</classsynopsisinfo>
<!-- {{{ XMLReader constants -->
@ -171,97 +168,83 @@
<initializer>4</initializer>
</fieldsynopsis>
<!-- }}} -->
<classsynopsisinfo role="comment">&Properties;</classsynopsisinfo>
<!-- {{{ XMLReader properties -->
<fieldsynopsis>
<modifier>public</modifier>
<modifier>readonly</modifier>
<type>int</type>
<varname linkend="xmlreader.props.attributecount">attributeCount</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<modifier>readonly</modifier>
<type>string</type>
<varname linkend="xmlreader.props.baseuri">baseURI</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<modifier>readonly</modifier>
<type>int</type>
<varname linkend="xmlreader.props.depth">depth</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<modifier>readonly</modifier>
<type>bool</type>
<varname linkend="xmlreader.props.hasattributes">hasAttributes</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<modifier>readonly</modifier>
<type>bool</type>
<varname linkend="xmlreader.props.hasvalue">hasValue</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<modifier>readonly</modifier>
<type>bool</type>
<varname linkend="xmlreader.props.isdefault">isDefault</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<modifier>readonly</modifier>
<type>bool</type>
<varname linkend="xmlreader.props.isemptyelement">isEmptyElement</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<modifier>readonly</modifier>
<type>string</type>
<varname linkend="xmlreader.props.localname">localName</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<modifier>readonly</modifier>
<type>string</type>
<varname linkend="xmlreader.props.name">name</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<modifier>readonly</modifier>
<type>string</type>
<varname linkend="xmlreader.props.namespaceuri">namespaceURI</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<modifier>readonly</modifier>
<type>int</type>
<varname linkend="xmlreader.props.nodetype">nodeType</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<modifier>readonly</modifier>
<type>string</type>
<varname linkend="xmlreader.props.prefix">prefix</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<modifier>readonly</modifier>
<type>string</type>
<varname linkend="xmlreader.props.value">value</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<modifier>readonly</modifier>
<type>string</type>
<varname linkend="xmlreader.props.xmllang">xmlLang</varname>
</fieldsynopsis>
<!-- }}} -->
<fieldsynopsis>
<modifier>public</modifier>
<type>int</type>
<varname linkend="xmlreader.props.attributecount">attributeCount</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<type>string</type>
<varname linkend="xmlreader.props.baseuri">baseURI</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<type>int</type>
<varname linkend="xmlreader.props.depth">depth</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<type>bool</type>
<varname linkend="xmlreader.props.hasattributes">hasAttributes</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<type>bool</type>
<varname linkend="xmlreader.props.hasvalue">hasValue</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<type>bool</type>
<varname linkend="xmlreader.props.isdefault">isDefault</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<type>bool</type>
<varname linkend="xmlreader.props.isemptyelement">isEmptyElement</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<type>string</type>
<varname linkend="xmlreader.props.localname">localName</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<type>string</type>
<varname linkend="xmlreader.props.name">name</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<type>string</type>
<varname linkend="xmlreader.props.namespaceuri">namespaceURI</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<type>int</type>
<varname linkend="xmlreader.props.nodetype">nodeType</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<type>string</type>
<varname linkend="xmlreader.props.prefix">prefix</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<type>string</type>
<varname linkend="xmlreader.props.value">value</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<type>string</type>
<varname linkend="xmlreader.props.xmllang">xmlLang</varname>
</fieldsynopsis>
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.xmlreader')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[1])" />
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.xmlreader')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])">
<xi:fallback/>
</xi:include>
</classsynopsis>
<!-- }}} -->

View File

@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: c31630ca23d219c758a8b580e1d583103e97e377 Maintainer: sergey Status: ready -->
<!-- EN-Revision: 2800b9fe1eabee40655778c8257b220dbc5d247a Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<phpdoc:classref xml:id="class.xmlwriter" xmlns:phpdoc="http://php.net/ns/phpdoc" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Класс XMLWriter</title>
@ -21,22 +20,24 @@
<section xml:id="xmlwriter.synopsis">
&reftitle.classsynopsis;
<!-- {{{ Synopsis -->
<!-- {{{ Synopsis -->
<classsynopsis>
<ooclass><classname>XMLWriter</classname></ooclass>
<ooclass>
<classname>XMLWriter</classname>
</ooclass>
<!-- {{{ Class synopsis -->
<classsynopsisinfo>
<ooclass>
<classname>XMLWriter</classname>
</ooclass>
</classsynopsisinfo>
<!-- }}} -->
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.xmlwriter')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])"><xi:fallback/></xi:include>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.xmlwriter')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])">
<xi:fallback/>
</xi:include>
</classsynopsis>
<!-- }}} -->
<!-- }}} -->
</section>
@ -45,7 +46,6 @@
&reference.xmlwriter.entities.xmlwriter;
</phpdoc:classref>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 55b62ad14007c10a6bdfd972cf3d4327a488dfe3 Maintainer: daniil Status: ready -->
<!-- EN-Revision: 8244b3b05367a40cac29bfdad1ae62885ed2b406 Maintainer: daniil Status: ready -->
<!-- Reviewed: no -->
<phpdoc:classref xmlns:phpdoc="http://php.net/ns/phpdoc" xml:id="class.ziparchive" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<phpdoc:classref xml:id="class.ziparchive" xmlns:phpdoc="http://php.net/ns/phpdoc" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Класс <classname>ZipArchive</classname></title>
<titleabbrev>ZipArchive</titleabbrev>
@ -19,11 +19,12 @@
<section xml:id="ziparchive.synopsis">
&reftitle.classsynopsis;
<!-- {{{ Synopsis -->
<!-- {{{ Synopsis -->
<classsynopsis>
<ooclass><classname>ZipArchive</classname></ooclass>
<ooclass>
<classname>ZipArchive</classname>
</ooclass>
<!-- {{{ Class synopsis -->
<classsynopsisinfo>
<ooclass>
<classname>ZipArchive</classname>
@ -33,20 +34,51 @@
<interfacename>Countable</interfacename>
</oointerface>
</classsynopsisinfo>
<!-- }}} -->
<classsynopsisinfo role="comment">&Properties;</classsynopsisinfo>
<fieldsynopsis><type>int</type><varname linkend="ziparchive.props.lastid">lastId</varname></fieldsynopsis>
<fieldsynopsis><type>int</type><varname linkend="ziparchive.props.status">status</varname></fieldsynopsis>
<fieldsynopsis><type>int</type><varname linkend="ziparchive.props.statussys">statusSys</varname></fieldsynopsis>
<fieldsynopsis><type>int</type><varname linkend="ziparchive.props.numfiles">numFiles</varname></fieldsynopsis>
<fieldsynopsis><type>string</type><varname linkend="ziparchive.props.filename">filename</varname></fieldsynopsis>
<fieldsynopsis><type>string</type><varname linkend="ziparchive.props.comment">comment</varname></fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<modifier>readonly</modifier>
<type>int</type>
<varname linkend="ziparchive.props.lastid">lastId</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<modifier>readonly</modifier>
<type>int</type>
<varname linkend="ziparchive.props.status">status</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<modifier>readonly</modifier>
<type>int</type>
<varname linkend="ziparchive.props.statussys">statusSys</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<modifier>readonly</modifier>
<type>int</type>
<varname linkend="ziparchive.props.numfiles">numFiles</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<modifier>readonly</modifier>
<type>string</type>
<varname linkend="ziparchive.props.filename">filename</varname>
</fieldsynopsis>
<fieldsynopsis>
<modifier>public</modifier>
<modifier>readonly</modifier>
<type>string</type>
<varname linkend="ziparchive.props.comment">comment</varname>
</fieldsynopsis>
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.ziparchive')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[1])" />
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.ziparchive')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])">
<xi:fallback/>
</xi:include>
</classsynopsis>
<!-- }}} -->
<!-- }}} -->
</section>