-
Notifications
You must be signed in to change notification settings - Fork 45
/
Copy pathregister-shutdown-function.xml
162 lines (153 loc) · 4.97 KB
/
register-shutdown-function.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: b412bbd26214f7281ac7dd858710e09952a275f2 Maintainer: nikic Status: ready -->
<!-- Reviewed: yes -->
<!-- Rev-Revision: a2be339a6624a85bc98dbfda574e370f17f2ea64 Reviewer: samesch -->
<refentry xml:id="function.register-shutdown-function" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>register_shutdown_function</refname>
<refpurpose>Registriert eine Funktion zur Ausführung beim Skript-Abschluss</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>void</type><methodname>register_shutdown_function</methodname>
<methodparam><type>callable</type><parameter>callback</parameter></methodparam>
<methodparam rep="repeat"><type>mixed</type><parameter>args</parameter></methodparam>
</methodsynopsis>
<para>
Registriert ein <parameter>callback</parameter>, welches ausgeführt werden
soll, sobald die Ausführung des Skripts endet oder wenn
<function>exit</function> aufgerufen wird.
</para>
<para>
<function>register_shutdown_function</function> kann mehrmals
hintereinander aufgerufen werden, und die Funktionen werden in derselben
Reihenfolge aufgerufen, wie sie registriert wurden. Wenn
<function>exit</function> innerhalb einer registrierten Shutdown-Funktion
aufgerufen wird, bricht die Ausführung vollständig ab und keine weiteren
registrierten Shutdown-Funktionen werden ausgeführt.
</para>
<para>
Shutdown-Funktionen können außerdem selbst
<function>register_shutdown_function</function> aufrufen, um eine
Shutdown-Funktion am Ende der Warteschlange hinzuzufügen.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>callback</parameter></term>
<listitem>
<para>
Das Shutdown-Callback, welches registriert werden soll.
</para>
<para>
Die Shutdown-Callbacks werden als Teil der Anfrage ausgeführt, &dh; es
ist möglich, Ausgaben zu senden und auf Ausgabepuffer zuzugreifen.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>args</parameter></term>
<listitem>
<para>
Hier können zusätzliche Parameter an die Shutdown-Funktion übergeben
werden.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.void;
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>register_shutdown_function</function>-Beispiel</title>
<programlisting role="php">
<![CDATA[
<?php
function shutdown()
{
// Das ist unsere Shutdown-Funktion, in welcher
// wir noch letzte Anweisungen ausführen können
// bevor die Ausführung beendet wird.
echo 'Skript erfolgreich ausgeführt', PHP_EOL;
}
register_shutdown_function('shutdown');
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
Das Arbeitsverzeichnis des Skripts kann sich bei manchen Webservern, &zb;
Apache, innerhalb des Shutdown-Callbacks ändern.
</para>
</note>
<note>
<para>
Shutdown-Funktionen werden nicht ausgeführt, wenn der Prozess mit einem
SIGTERM- oder SIGKILL-Signal terminiert wurde. Ein SIGKILL kann zwar nicht
abgefangen werden, aber dafür kann mittels
<function>pcntl_signal</function> ein Handler für SIGTERM registriert
werden, der <function>exit</function> für einen sauberen Abbruch
verwendet.
</para>
</note>
<note>
<para>
Shutdown-Funktionen laufen getrennt von der Zeit, die von
<link linkend="ini.max-execution-time">max_execution_time</link> gemessen
wird. Das bedeutet, dass die Shutdown-Funktionen auch dann noch aufgerufen
werden, wenn ein Prozess beendet wird, weil er zu lange läuft. Außerdem
wird eine laufende Shutdown-Funktion nicht beendet, wenn währenddessen die
<literal>max_execution_time</literal> abläuft.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><link linkend="ini.auto-append-file">auto_append_file</link></member>
<member><function>exit</function></member>
<member><function>fastcgi_finish_request</function></member>
<member>Den Abschnitt über <link linkend="features.connection-handling">Verbindungssteuerung</link></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->