Skip to content

Commit a78c5ca

Browse files
authored
Update error handling to En, 4a6671 (#1063)
* Create get-error-handler.xml * get-error-handler.xml Доперевел слово в примере * Create get-exception-handler.xml * Update restore-error-handler.xml to en * restore-error-handler.xml исправил формулировку * Update restore-exception-handler.xml to en * Update set-exception-handler.xml to en
1 parent 8ef7fbc commit a78c5ca

5 files changed

Lines changed: 312 additions & 50 deletions

File tree

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!-- EN-Revision: 4a6671fe697ead5b27603b56face01a2c4e7ebe5 Maintainer: malferov Status: ready -->
3+
<!-- Reviewed: no -->
4+
<refentry xml:id="function.get-error-handler" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
5+
<refnamediv>
6+
<refname>get_error_handler</refname>
7+
<refpurpose>Получает пользовательскую функцию обработчика ошибок</refpurpose>
8+
</refnamediv>
9+
10+
<refsect1 role="description">
11+
&reftitle.description;
12+
<methodsynopsis>
13+
<type class="union"><type>callable</type><type>null</type></type><methodname>get_error_handler</methodname>
14+
<void/>
15+
</methodsynopsis>
16+
<simpara>
17+
Функция возвращает текущую функцию обработчика ошибок, если такую функцию определили.
18+
</simpara>
19+
</refsect1>
20+
21+
<refsect1 role="parameters">
22+
&reftitle.parameters;
23+
&no.function.parameters;
24+
</refsect1>
25+
26+
<refsect1 role="returnvalues">
27+
&reftitle.returnvalues;
28+
<simpara>
29+
Функция возвращает текущий обработчик ошибок, если такой определили в коде,
30+
или значение &null;, если за текущую обработку ошибок отвечает встроенная функция.
31+
</simpara>
32+
<simpara>
33+
Функция возвращает непосредственно ту callback-функцию, которую передали в функцию
34+
<function>set_error_handler</function>, когда устанавливали пользовательский обработчик.
35+
</simpara>
36+
</refsect1>
37+
38+
<refsect1 role="examples">
39+
&reftitle.examples;
40+
<para>
41+
<example>
42+
<title>Пример получения пользовательского обработчика ошибок функцией <function>get_error_handler</function></title>
43+
<programlisting role="php">
44+
<![CDATA[
45+
<?php
46+
47+
$handler = function (int $errno, string $errstr, ?string $errfile, ?int $errline) {
48+
echo "Ошибка: " . $errstr . "\n";
49+
};
50+
51+
var_dump(get_error_handler()); // NULL
52+
53+
set_error_handler($handler);
54+
55+
var_dump(get_error_handler() === $handler); // bool(true)
56+
57+
?>
58+
]]>
59+
</programlisting>
60+
</example>
61+
</para>
62+
</refsect1>
63+
64+
<refsect1 role="notes">
65+
&reftitle.notes;
66+
<tip>
67+
<simpara>
68+
До PHP 8.5.0 действие функции заменяет следующий
69+
полифил:
70+
</simpara>
71+
<informalexample>
72+
<programlisting role="php">
73+
<![CDATA[
74+
<?php
75+
76+
if (!function_exists('get_error_handler')) {
77+
function noop_error_handler() {}
78+
79+
function get_error_handler(): ?callable
80+
{
81+
$handler = set_error_handler('noop_error_handler');
82+
restore_error_handler();
83+
return $handler;
84+
}
85+
}
86+
87+
?>
88+
]]>
89+
</programlisting>
90+
</informalexample>
91+
</tip>
92+
</refsect1>
93+
94+
<refsect1 role="seealso">
95+
&reftitle.seealso;
96+
<para>
97+
<simplelist>
98+
<member><function>error_reporting</function></member>
99+
<member><function>set_error_handler</function></member>
100+
<member><function>restore_error_handler</function></member>
101+
<member><function>trigger_error</function></member>
102+
<member><link linkend="errorfunc.constants">Константы уровней ошибок</link></member>
103+
</simplelist>
104+
</para>
105+
</refsect1>
106+
</refentry>
107+
<!-- Keep this comment at the end of the file
108+
Local variables:
109+
mode: sgml
110+
sgml-omittag:t
111+
sgml-shorttag:t
112+
sgml-minimize-attributes:nil
113+
sgml-always-quote-attributes:t
114+
sgml-indent-step:1
115+
sgml-indent-data:t
116+
indent-tabs-mode:nil
117+
sgml-parent-document:nil
118+
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
119+
sgml-exposed-tags:nil
120+
sgml-local-catalogs:nil
121+
sgml-local-ecat-files:nil
122+
End:
123+
vim600: syn=xml fen fdm=syntax fdl=2 si
124+
vim: et tw=78 syn=sgml
125+
vi: ts=1 sw=1
126+
-->
Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!-- EN-Revision: 4a6671fe697ead5b27603b56face01a2c4e7ebe5 Maintainer: malferov Status: ready -->
3+
<!-- Reviewed: no -->
4+
<refentry xml:id="function.get-exception-handler" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
5+
<refnamediv>
6+
<refname>get_exception_handler</refname>
7+
<refpurpose>Получает пользовательскую функцию обработчика исключений</refpurpose>
8+
</refnamediv>
9+
10+
<refsect1 role="description">
11+
&reftitle.description;
12+
<methodsynopsis>
13+
<type class="union"><type>callable</type><type>null</type></type><methodname>get_exception_handler</methodname>
14+
<void/>
15+
</methodsynopsis>
16+
<simpara>
17+
Функция возвращает текущую функцию обработчика исключений, если такую функцию определили.
18+
</simpara>
19+
</refsect1>
20+
21+
<refsect1 role="parameters">
22+
&reftitle.parameters;
23+
&no.function.parameters;
24+
</refsect1>
25+
26+
<refsect1 role="returnvalues">
27+
&reftitle.returnvalues;
28+
<simpara>
29+
Функция возвращает текущий обработчик исключений, если такой определили в коде,
30+
или значение &null;, если за текущую обработку исключений отвечает встроенная функция.
31+
</simpara>
32+
<simpara>
33+
Функция возвращает непосредственно ту callback-функцию, которую передали в функцию
34+
<function>set_exception_handler</function>, когда устанавливали пользовательский обработчик.
35+
</simpara>
36+
</refsect1>
37+
38+
<refsect1 role="examples">
39+
&reftitle.examples;
40+
<para>
41+
<example>
42+
<title>Пример получения пользовательского обработчика исключений функцией <function>get_exception_handler</function></title>
43+
<programlisting role="php">
44+
<![CDATA[
45+
<?php
46+
47+
$handler = function (Throwable $ex) {
48+
echo "Исключение: " . $ex::class . ": " . $ex->getMessage() . "\n";
49+
};
50+
51+
var_dump(get_exception_handler()); // NULL
52+
53+
set_exception_handler($handler);
54+
55+
var_dump(get_exception_handler() === $handler); // bool(true)
56+
57+
?>
58+
]]>
59+
</programlisting>
60+
</example>
61+
</para>
62+
</refsect1>
63+
64+
<refsect1 role="notes">
65+
&reftitle.notes;
66+
<tip>
67+
<simpara>
68+
До PHP 8.5.0 действие функции заменяет следующий
69+
полифил:
70+
</simpara>
71+
<informalexample>
72+
<programlisting role="php">
73+
<![CDATA[
74+
<?php
75+
76+
if (!function_exists('get_exception_handler')) {
77+
function noop_exception_handler() {}
78+
79+
function get_exception_handler(): ?callable
80+
{
81+
$handler = set_exception_handler('noop_exception_handler');
82+
restore_exception_handler();
83+
return $handler;
84+
}
85+
}
86+
87+
?>
88+
]]>
89+
</programlisting>
90+
</informalexample>
91+
</tip>
92+
</refsect1>
93+
94+
<refsect1 role="seealso">
95+
&reftitle.seealso;
96+
<para>
97+
<simplelist>
98+
<member><function>set_exception_handler</function></member>
99+
<member><function>restore_exception_handler</function></member>
100+
<member><function>restore_error_handler</function></member>
101+
<member><function>error_reporting</function></member>
102+
<member><link linkend="language.exceptions">Исключения</link></member>
103+
</simplelist>
104+
</para>
105+
</refsect1>
106+
</refentry>
107+
<!-- Keep this comment at the end of the file
108+
Local variables:
109+
mode: sgml
110+
sgml-omittag:t
111+
sgml-shorttag:t
112+
sgml-minimize-attributes:nil
113+
sgml-always-quote-attributes:t
114+
sgml-indent-step:1
115+
sgml-indent-data:t
116+
indent-tabs-mode:nil
117+
sgml-parent-document:nil
118+
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
119+
sgml-exposed-tags:nil
120+
sgml-local-catalogs:nil
121+
sgml-local-ecat-files:nil
122+
End:
123+
vim600: syn=xml fen fdm=syntax fdl=2 si
124+
vim: et tw=78 syn=sgml
125+
vi: ts=1 sw=1
126+
-->

reference/errorfunc/functions/restore-error-handler.xml

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<!-- EN-Revision: f781803449007bb0e3a96c693e0eee067f7eb466 Maintainer: tmn Status: ready -->
2+
<!-- EN-Revision: 4a6671fe697ead5b27603b56face01a2c4e7ebe5 Maintainer: tmn Status: ready -->
33
<!-- Reviewed: no -->
44
<refentry xml:id="function.restore-error-handler" xmlns="http://docbook.org/ns/docbook">
55
<refnamediv>
66
<refname>restore_error_handler</refname>
77
<refpurpose>
8-
Восстанавливает предыдущий обработчик ошибок
8+
Восстанавливает предыдущую функцию обработчика ошибок
99
</refpurpose>
1010
</refnamediv>
1111

@@ -16,10 +16,10 @@
1616
<void/>
1717
</methodsynopsis>
1818
<para>
19-
Используется после смены обработчика ошибок функцией
20-
<function>set_error_handler</function>, чтобы вернуть предыдущий обработчик
21-
(который может быть как встроенной функцией, так и определённой
22-
пользователем).
19+
Функцию вызывают после изменения обработчика ошибок функцией
20+
<function>set_error_handler</function>, чтобы вернуться к предыдущему обработчику,
21+
которым станет или пользовательская функция обработки ошибок, если такую определили,
22+
или встроенный обработчик.
2323
</para>
2424
</refsect1>
2525

@@ -39,31 +39,33 @@
3939
&reftitle.examples;
4040
<para>
4141
<example>
42-
<title>Пример использования <function>restore_error_handler</function></title>
42+
<title>Пример восстановления предыдущего обработчика ошибок функцией <function>restore_error_handler</function></title>
4343
<para>
44-
Определение, произошла ли ошибка в функции
45-
<function>unserialize</function>, а затем восстановление исходного
46-
обработчика ошибок.
44+
Пример определяет, вызвала ли ошибку функция
45+
<function>unserialize</function>, а затем восстанавливает исходный
46+
обработчик ошибок.
4747
</para>
4848
<programlisting role="php">
4949
<![CDATA[
5050
<?php
51+
5152
function unserialize_handler($errno, $errstr)
5253
{
53-
echo "Сериализуемое значение недопустимо.\n";
54+
echo "Недопустимое сериализованное значение.\n";
5455
}
5556
5657
$serialized = 'foo';
5758
set_error_handler('unserialize_handler');
5859
$original = unserialize($serialized);
5960
restore_error_handler();
61+
6062
?>
6163
]]>
6264
</programlisting>
6365
&example.outputs;
6466
<screen>
6567
<![CDATA[
66-
Сериализуемое значение недопустимо.
68+
Недопустимое сериализованное значение.
6769
]]>
6870
</screen>
6971
</example>
@@ -76,6 +78,7 @@ restore_error_handler();
7678
<simplelist>
7779
<member><function>error_reporting</function></member>
7880
<member><function>set_error_handler</function></member>
81+
<member><function>get_error_handler</function></member>
7982
<member><function>restore_exception_handler</function></member>
8083
<member><function>trigger_error</function></member>
8184
</simplelist>

0 commit comments

Comments
 (0)