com doc/ru: Обновлен ие до англи йской верси и: language/oop5/decon.xml language/oop5/stati c.xml
reference/libxml/functions/libxml-disable-entity-load er.xml reference/libxml/functions/libxml-set-external-entit y-loader.xml
| From: | Sergey Panteleev | Date: | Wed, 20 Jan 2021 06:36:19 +0000 |
| Subject: | com doc/ru: Обновлен ие до англи йской верси и: language/oop5/decon.xml language/oop5/stati c.xml reference/libxml/functions/libxml-disable-entity-load er.xml reference/libxml/functions/libxml-set-external-entit y-loader.xml |
||
| Groups: | php.doc.ru | ||
| Request: | Send a blank email to doc-ru+get-8762@lists.php.net to get a copy of this message | ||
Commit: 599edce2f9ff5fe6d0b3e7c855231a49f8aff3e7
Author: Sergey Panteleev <sergey@php.net> Wed, 20 Jan 2021 09:34:42 +0300
Parents: 06b5d4d39ca3630e2e05854595cb305e454ce431
Branches: master
Link: http://git.php.net/?p=doc/ru.git;a=commitdiff;h=599edce2f9ff5fe6d0b3e7c855231a49f8aff3e7
Log:
Обновление до английской версии
Changed paths:
M language/oop5/decon.xml
M language/oop5/static.xml
M reference/libxml/functions/libxml-disable-entity-loader.xml
M reference/libxml/functions/libxml-set-external-entity-loader.xml
diff --git a/language/oop5/decon.xml b/language/oop5/decon.xml index f46747409..fea7d44db 100644 --- a/language/oop5/decon.xml +++ b/language/oop5/decon.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<!-- EN-Revision: a9edd62d087ab1eb6292c795b7256e14ff9f1234 Maintainer: shein Status: ready --> +<!-- EN-Revision: 4317fec7555dd42621f88162cc5068092e5c5cfb Maintainer: shein Status: ready --> <!-- Reviewed: yes --> <!-- $Revision$ --> <sect1 xml:id="language.oop5.decon" xmlns="http://docbook.org/ns/docbook"> @@ -66,12 +66,8 @@ $obj = new OtherSubClass(); </programlisting> </example> <para> - В отличие от других методов, PHP не будет генерировать ошибку - уровня <constant>E_STRICT</constant>, если - <link linkend="object.construct">__construct()</link> - переопределяется с другими параметрами, отличными от тех, - которые были объявлены в родительском методе - <link linkend="object.construct">__construct()</link>. + В отличие от других методов, <link linkend="object.construct">__construct()</link> + освобождается от обычных <link linkend="language.oop.lsp">правил совместимости сигнатуры</link> при наследовании. </para> <para> Конструкторы - это обычные методы, которые вызываются при diff --git a/language/oop5/static.xml b/language/oop5/static.xml index 93eb4329e..2d659c092 100644 --- a/language/oop5/static.xml +++ b/language/oop5/static.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<!-- EN-Revision: 7e52ec86851a62d1d00109ccffa5dab5c73e5cc2 Maintainer: shein Status: ready --> +<!-- EN-Revision: a9edd62d087ab1eb6292c795b7256e14ff9f1234 Maintainer: shein Status: ready --> <!-- Reviewed: yes --> <!-- $Revision$ --> <sect1 xml:id="language.oop5.static" xmlns="http://docbook.org/ns/docbook"> @@ -25,13 +25,6 @@ может быть вызван). </para> - <para> - В целях совместимости с PHP 4, если определение - <link linkend="language.oop5.visibility">области видимости</link> не используется, - то свойство или метод - будут обрабатываться так, как если бы он был объявлен как <literal>public</literal>. - </para> - <sect2 xml:id="language.oop5.static.methods"> <title>Статические методы</title> <para> @@ -40,18 +33,14 @@ объявленного как статический. </para> - <caution> - <simpara> - В PHP 5 вызов нестатических методов статически вызовет ошибку уровня - <constant>E_STRICT</constant>. - </simpara> - </caution> <warning> - <simpara> - В PHP 7 вызов нестатических методов статически объявлен устаревшим - и вызовет ошибку уровня <constant>E_DEPRECATED</constant>. Поддержка вызова - нестатических методов статически может быть удалена в будущем. - </simpara> + <para> + Вызов нестатических методов статически вызывает ошибку <classname>Error</classname>. + </para> + <para> + До PHP 8.0.0 вызов нестатических методов статически был объявлен устаревшим + и вызывал ошибку уровня <constant>E_DEPRECATED</constant>. + </para> </warning> <example> @@ -67,7 +56,7 @@ class Foo { Foo::aStaticMethod(); $classname = 'Foo'; -$classname::aStaticMethod(); // Начиная с PHP 5.3.0 +$classname::aStaticMethod(); ?> ]]> </programlisting> @@ -81,15 +70,14 @@ $classname::aStaticMethod(); // Начиная с PHP 5.3.0 </para> <para> Как и любая другая статическая переменная PHP, статические свойства - могут инициализироваться только используя литерал или константу до PHP 5.6; - выражения не допускается. В PHP 5.6 и более новых версиях применяются те же правила, - что и для выражений &const;: возможны некоторые выражения, если они могут быть вычислены + могут инициализироваться по тем же правилам, что и выражения &const;: + возможны некоторые выражения, если они могут быть вычислены во время компиляции. </para> <para> - Начиная с PHP 5.3.0, существует возможность ссылаться на класс используя - переменную. Значение переменной в таком случае не может быть ключевым + На класс можно ссылаться с помощью переменной. + Значение переменной в таком случае не может быть ключевым словом (например, <literal>self</literal>, <literal>parent</literal> и <literal>static</literal>). </para> @@ -122,9 +110,9 @@ $foo = new Foo(); print $foo->staticValue() . "\n"; print $foo->my_static . "\n"; // Не определено свойство my_static -print $foo::$my_static . "\n"; // Начиная с PHP 5.3.0 +print $foo::$my_static . "\n"; $classname = 'Foo'; -print $classname::$my_static . "\n"; // Начиная с PHP 5.3.0 +print $classname::$my_static . "\n"; print Bar::$my_static . "\n"; $bar = new Bar(); @@ -135,7 +123,6 @@ print $bar->fooStatic() . "\n"; </example> </sect2> </sect1> - <!-- Keep this comment at the end of the file Local variables: mode: sgml diff --git a/reference/libxml/functions/libxml-disable-entity-loader.xml b/reference/libxml/functions/libxml-disable-entity-loader.xml index 73b21c02f..7a7d5dcb2 100644 --- a/reference/libxml/functions/libxml-disable-entity-loader.xml +++ b/reference/libxml/functions/libxml-disable-entity-loader.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<!-- EN-Revision: a07808fdd74a7ebda792e77c4c7b377e6d44f26a Maintainer: tmn Status: ready --> +<!-- EN-Revision: 5b5bb5d9b3eb2301f2ada74817421e40ae3a1752 Maintainer: tmn Status: ready --> <!-- Reviewed: yes Maintainer: lex --> <!-- $Revision$ --> <refentry xml:id="function.libxml-disable-entity-loader" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"> @@ -10,6 +10,10 @@ </refpurpose> </refnamediv> + <refsynopsisdiv> + &warn.deprecated.function-8-0-0; + </refsynopsisdiv> + <refsect1 role="description"> &reftitle.description; <methodsynopsis> @@ -21,7 +25,9 @@ Обратите внимание, что отключение загрузки внешних сущностей может вызвать общие проблемы с загрузкой XML-документов. Однако в libxml 2.9.0 подстановка сущностей отключена по умолчанию, поэтому нет необходимости отключать загрузку внешних - сущностей. + сущностей, если нет необходимости разрешать ссылки на внутренние сущности с помощью <constant>LIBXML_NOENT</constant>. + Как правило, лучше использовать <function>libxml_set_external_entity_loader</function> + для подавления загрузки внешних сущностей. </para> </refsect1> @@ -95,13 +101,13 @@ <para> <simplelist> <member><function>libxml_use_internal_errors</function></member> + <member><function>libxml_set_external_entity_loader</function></member> <member><link linkend="libxml.constants">Константа <constant>LIBXML_NONET</constant></link></member> </simplelist> </para> </refsect1> </refentry> - <!-- Keep this comment at the end of the file Local variables: mode: sgml diff --git a/reference/libxml/functions/libxml-set-external-entity-loader.xml b/reference/libxml/functions/libxml-set-external-entity-loader.xml index 4413ef540..15e230c55 100644 --- a/reference/libxml/functions/libxml-set-external-entity-loader.xml +++ b/reference/libxml/functions/libxml-set-external-entity-loader.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<!-- EN-Revision: f90df97fa5ebfa6e7fcace04976900d6700467cc Maintainer: rjhdby Status: ready --> +<!-- EN-Revision: 0e06ad7d77756a2f390e14d19b823a42ab65892b Maintainer: rjhdby Status: ready --> <!-- Reviewed: yes Maintainer: lex --> <!-- $Revision$ --> <refentry xml:id="function.libxml-set-external-entity-loader" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"> @@ -16,6 +16,9 @@ </methodsynopsis> <para> Изменение загрузчика по умолчанию для внешних объектов. + Можно использовать для подавления расширения произвольных внешних сущностей, чтобы избежать XXE-атак, + даже если для соответствующей операции установлено значение <constant>LIBXML_NOENT</constant>. + Обычно это лучше, чем вызов <function>libxml_disable_entity_loader</function>. </para> </refsect1> @@ -26,10 +29,42 @@ <term><parameter>resolver_function</parameter></term> <listitem> <para> - Функция обратного вызова (<type>callable</type>), принимающая три аргумента. - Две строки, публичный и системный идентификаторы и контекст (массив с четырьмя ключами). - Эта функция должна возвращать ресурс, строку, из которой этот ресурс можно открыть, - или &null;. + Callback-функция (<type>callable</type>) со следующей сигнатурой: + <methodsynopsis> + <type class="union"><type>resource</type><type>string</type><type>null</type></type><methodname><replaceable>resolver</replaceable></methodname> + <methodparam><type>string</type><parameter>public_id</parameter></methodparam> + <methodparam><type>string</type><parameter>system_id</parameter></methodparam> + <methodparam><type>array</type><parameter>context</parameter></methodparam> + </methodsynopsis> + <variablelist> + <varlistentry> + <term><parameter>public_id</parameter></term> + <listitem> + <simpara> + Публичный идентификатор. + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><parameter>system_id</parameter></term> + <listitem> + <simpara> + Системный идентификатор. + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><parameter>context</parameter></term> + <listitem> + <simpara> + Массив из четырёх элементов: <literal>"directory"</literal>, <literal>"intSubName"</literal>, + <literal>"extSubURI"</literal> и <literal>"extSubSystem"</literal>. + </simpara> + </listitem> + </varlistentry> + </variablelist> + Эта callback-функция должна возвращать ресурс (&resource;) или строку (&string;) из которой + можно открыть ресурс. Если возвращается &null;, разрешение ссылки на сущность завершится ошибкой. </para> </listitem> </varlistentry>
diff --git a/language/oop5/decon.xml b/language/oop5/decon.xml index f46747409..fea7d44db 100644 --- a/language/oop5/decon.xml +++ b/language/oop5/decon.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<!-- EN-Revision: a9edd62d087ab1eb6292c795b7256e14ff9f1234 Maintainer: shein Status: ready --> +<!-- EN-Revision: 4317fec7555dd42621f88162cc5068092e5c5cfb Maintainer: shein Status: ready --> <!-- Reviewed: yes --> <!-- $Revision$ --> <sect1 xml:id="language.oop5.decon" xmlns="http://docbook.org/ns/docbook"> @@ -66,12 +66,8 @@ $obj = new OtherSubClass(); </programlisting> </example> <para> - В отличие от других методов, PHP не будет генерировать ошибку - уровня <constant>E_STRICT</constant>, если - <link linkend="object.construct">__construct()</link> - переопределяется с другими параметрами, отличными от тех, - которые были объявлены в родительском методе - <link linkend="object.construct">__construct()</link>. + В отличие от других методов, <link linkend="object.construct">__construct()</link> + освобождается от обычных <link linkend="language.oop.lsp">правил совместимости сигнатуры</link> при наследовании. </para> <para> Конструкторы - это обычные методы, которые вызываются при diff --git a/language/oop5/static.xml b/language/oop5/static.xml index 93eb4329e..2d659c092 100644 --- a/language/oop5/static.xml +++ b/language/oop5/static.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<!-- EN-Revision: 7e52ec86851a62d1d00109ccffa5dab5c73e5cc2 Maintainer: shein Status: ready --> +<!-- EN-Revision: a9edd62d087ab1eb6292c795b7256e14ff9f1234 Maintainer: shein Status: ready --> <!-- Reviewed: yes --> <!-- $Revision$ --> <sect1 xml:id="language.oop5.static" xmlns="http://docbook.org/ns/docbook"> @@ -25,13 +25,6 @@ может быть вызван). </para> - <para> - В целях совместимости с PHP 4, если определение - <link linkend="language.oop5.visibility">области видимости</link> не используется, - то свойство или метод - будут обрабатываться так, как если бы он был объявлен как <literal>public</literal>. - </para> - <sect2 xml:id="language.oop5.static.methods"> <title>Статические методы</title> <para> @@ -40,18 +33,14 @@ объявленного как статический. </para> - <caution> - <simpara> - В PHP 5 вызов нестатических методов статически вызовет ошибку уровня - <constant>E_STRICT</constant>. - </simpara> - </caution> <warning> - <simpara> - В PHP 7 вызов нестатических методов статически объявлен устаревшим - и вызовет ошибку уровня <constant>E_DEPRECATED</constant>. Поддержка вызова - нестатических методов статически может быть удалена в будущем. - </simpara> + <para> + Вызов нестатических методов статически вызывает ошибку <classname>Error</classname>. + </para> + <para> + До PHP 8.0.0 вызов нестатических методов статически был объявлен устаревшим + и вызывал ошибку уровня <constant>E_DEPRECATED</constant>. + </para> </warning> <example> @@ -67,7 +56,7 @@ class Foo { Foo::aStaticMethod(); $classname = 'Foo'; -$classname::aStaticMethod(); // Начиная с PHP 5.3.0 +$classname::aStaticMethod(); ?> ]]> </programlisting> @@ -81,15 +70,14 @@ $classname::aStaticMethod(); // Начиная с PHP 5.3.0 </para> <para> Как и любая другая статическая переменная PHP, статические свойства - могут инициализироваться только используя литерал или константу до PHP 5.6; - выражения не допускается. В PHP 5.6 и более новых версиях применяются те же правила, - что и для выражений &const;: возможны некоторые выражения, если они могут быть вычислены + могут инициализироваться по тем же правилам, что и выражения &const;: + возможны некоторые выражения, если они могут быть вычислены во время компиляции. </para> <para> - Начиная с PHP 5.3.0, существует возможность ссылаться на класс используя - переменную. Значение переменной в таком случае не может быть ключевым + На класс можно ссылаться с помощью переменной. + Значение переменной в таком случае не может быть ключевым словом (например, <literal>self</literal>, <literal>parent</literal> и <literal>static</literal>). </para> @@ -122,9 +110,9 @@ $foo = new Foo(); print $foo->staticValue() . "\n"; print $foo->my_static . "\n"; // Не определено свойство my_static -print $foo::$my_static . "\n"; // Начиная с PHP 5.3.0 +print $foo::$my_static . "\n"; $classname = 'Foo'; -print $classname::$my_static . "\n"; // Начиная с PHP 5.3.0 +print $classname::$my_static . "\n"; print Bar::$my_static . "\n"; $bar = new Bar(); @@ -135,7 +123,6 @@ print $bar->fooStatic() . "\n"; </example> </sect2> </sect1> - <!-- Keep this comment at the end of the file Local variables: mode: sgml diff --git a/reference/libxml/functions/libxml-disable-entity-loader.xml b/reference/libxml/functions/libxml-disable-entity-loader.xml index 73b21c02f..7a7d5dcb2 100644 --- a/reference/libxml/functions/libxml-disable-entity-loader.xml +++ b/reference/libxml/functions/libxml-disable-entity-loader.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<!-- EN-Revision: a07808fdd74a7ebda792e77c4c7b377e6d44f26a Maintainer: tmn Status: ready --> +<!-- EN-Revision: 5b5bb5d9b3eb2301f2ada74817421e40ae3a1752 Maintainer: tmn Status: ready --> <!-- Reviewed: yes Maintainer: lex --> <!-- $Revision$ --> <refentry xml:id="function.libxml-disable-entity-loader" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"> @@ -10,6 +10,10 @@ </refpurpose> </refnamediv> + <refsynopsisdiv> + &warn.deprecated.function-8-0-0; + </refsynopsisdiv> + <refsect1 role="description"> &reftitle.description; <methodsynopsis> @@ -21,7 +25,9 @@ Обратите внимание, что отключение загрузки внешних сущностей может вызвать общие проблемы с загрузкой XML-документов. Однако в libxml 2.9.0 подстановка сущностей отключена по умолчанию, поэтому нет необходимости отключать загрузку внешних - сущностей. + сущностей, если нет необходимости разрешать ссылки на внутренние сущности с помощью <constant>LIBXML_NOENT</constant>. + Как правило, лучше использовать <function>libxml_set_external_entity_loader</function> + для подавления загрузки внешних сущностей. </para> </refsect1> @@ -95,13 +101,13 @@ <para> <simplelist> <member><function>libxml_use_internal_errors</function></member> + <member><function>libxml_set_external_entity_loader</function></member> <member><link linkend="libxml.constants">Константа <constant>LIBXML_NONET</constant></link></member> </simplelist> </para> </refsect1> </refentry> - <!-- Keep this comment at the end of the file Local variables: mode: sgml diff --git a/reference/libxml/functions/libxml-set-external-entity-loader.xml b/reference/libxml/functions/libxml-set-external-entity-loader.xml index 4413ef540..15e230c55 100644 --- a/reference/libxml/functions/libxml-set-external-entity-loader.xml +++ b/reference/libxml/functions/libxml-set-external-entity-loader.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<!-- EN-Revision: f90df97fa5ebfa6e7fcace04976900d6700467cc Maintainer: rjhdby Status: ready --> +<!-- EN-Revision: 0e06ad7d77756a2f390e14d19b823a42ab65892b Maintainer: rjhdby Status: ready --> <!-- Reviewed: yes Maintainer: lex --> <!-- $Revision$ --> <refentry xml:id="function.libxml-set-external-entity-loader" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"> @@ -16,6 +16,9 @@ </methodsynopsis> <para> Изменение загрузчика по умолчанию для внешних объектов. + Можно использовать для подавления расширения произвольных внешних сущностей, чтобы избежать XXE-атак, + даже если для соответствующей операции установлено значение <constant>LIBXML_NOENT</constant>. + Обычно это лучше, чем вызов <function>libxml_disable_entity_loader</function>. </para> </refsect1> @@ -26,10 +29,42 @@ <term><parameter>resolver_function</parameter></term> <listitem> <para> - Функция обратного вызова (<type>callable</type>), принимающая три аргумента. - Две строки, публичный и системный идентификаторы и контекст (массив с четырьмя ключами). - Эта функция должна возвращать ресурс, строку, из которой этот ресурс можно открыть, - или &null;. + Callback-функция (<type>callable</type>) со следующей сигнатурой: + <methodsynopsis> + <type class="union"><type>resource</type><type>string</type><type>null</type></type><methodname><replaceable>resolver</replaceable></methodname> + <methodparam><type>string</type><parameter>public_id</parameter></methodparam> + <methodparam><type>string</type><parameter>system_id</parameter></methodparam> + <methodparam><type>array</type><parameter>context</parameter></methodparam> + </methodsynopsis> + <variablelist> + <varlistentry> + <term><parameter>public_id</parameter></term> + <listitem> + <simpara> + Публичный идентификатор. + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><parameter>system_id</parameter></term> + <listitem> + <simpara> + Системный идентификатор. + </simpara> + </listitem> + </varlistentry> + <varlistentry> + <term><parameter>context</parameter></term> + <listitem> + <simpara> + Массив из четырёх элементов: <literal>"directory"</literal>, <literal>"intSubName"</literal>, + <literal>"extSubURI"</literal> и <literal>"extSubSystem"</literal>. + </simpara> + </listitem> + </varlistentry> + </variablelist> + Эта callback-функция должна возвращать ресурс (&resource;) или строку (&string;) из которой + можно открыть ресурс. Если возвращается &null;, разрешение ссылки на сущность завершится ошибкой. </para> </listitem> </varlistentry>