svn: /phpdoc/de/trunk/ language/oop5/magic.xml reference/curl/curlfile/construct.xml reference/math/functions/pi.xml reference/var/functions/serialize.xml reference/var/functions/unserialize.xml reference/zip/configure.xml
[email protected] (Christoph Michael Becker)
| Newsgroups | php.doc.de |
|---|---|
| Message-ID | <[email protected]> |
cmb Sun, 05 Apr 2020 10:39:27 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=349622
Log:
Sync with EN
Changed paths:
U phpdoc/de/trunk/language/oop5/magic.xml
U phpdoc/de/trunk/reference/curl/curlfile/construct.xml
U phpdoc/de/trunk/reference/math/functions/pi.xml
U phpdoc/de/trunk/reference/var/functions/serialize.xml
U phpdoc/de/trunk/reference/var/functions/unserialize.xml
U phpdoc/de/trunk/reference/zip/configure.xml
svn-diffs-349622.txt
(text/x-diff, 13.8 KB)
Modified: phpdoc/de/trunk/language/oop5/magic.xml
===================================================================
--- phpdoc/de/trunk/language/oop5/magic.xml 2020-04-05 07:46:56 UTC (rev 349621)
+++ phpdoc/de/trunk/language/oop5/magic.xml 2020-04-05 10:39:27 UTC (rev 349622)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
-<!-- EN-Revision: 349020 Maintainer: hholzgra Status: ready -->
+<!-- EN-Revision: 349590 Maintainer: hholzgra Status: ready -->
<!-- Credits: simp -->
<sect1 xml:id="language.oop5.magic" xmlns="http://docbook.org/ns/docbook">
<title>Magische Methoden</title>
@@ -16,6 +16,8 @@
<link linkend="object.unset">__unset()</link>,
<link linkend="object.sleep">__sleep()</link>,
<link linkend="object.wakeup">__wakeup()</link>,
+ <link linkend="object.serialize">__serialize()</link>,
+ <link linkend="object.unserialize">__unserialize()</link>,
<link linkend="object.tostring">__toString()</link>,
<link linkend="object.invoke">__invoke()</link>,
<link linkend="object.set-state">__set_state()</link>,
@@ -52,12 +54,12 @@
<void/>
</methodsynopsis>
<methodsynopsis xml:id="object.wakeup">
- <type>void</type><methodname>__wakeup</methodname>
+ <modifier>public</modifier> <type>void</type><methodname>__wakeup</methodname>
<void/>
</methodsynopsis>
<para>
- <function>serialize</function> prüft, ob Ihre Klasse eine Funktion mit dem
+ <function>serialize</function> prüft, ob die Klasse eine Funktion mit dem
magischen Namen <link linkend="object.sleep">__sleep()</link> besitzt. Wenn
dem so ist, wird die Funktion vor jeder Serialisierung ausgeführt. Sie kann
das Objekt aufräumen und es wird von ihr erwartet, dass sie ein Array mit den
@@ -128,6 +130,110 @@
</example>
</sect2>
+ <sect2 xml:id="language.oop5.magic.serialize">
+ <title>
+ <link linkend="object.serialize">__serialize()</link> and
+ <link linkend="object.unserialize">__unserialize()</link>
+ </title>
+
+ <methodsynopsis xml:id="object.serialize">
+ <modifier>public</modifier> <type>array</type><methodname>__serialize</methodname>
+ <void/>
+ </methodsynopsis>
+ <methodsynopsis xml:id="object.unserialize">
+ <modifier>public</modifier> <type>void</type><methodname>__unserialize</methodname>
+ <methodparam><type>array</type><parameter>data</parameter></methodparam>
+ </methodsynopsis>
+
+ <para>
+ <function>serialize</function> prüft, ob die Klasse eine Funktion mit dem
+ magischen Namen <link linkend="object.sleep">__serialize()</link> besitzt. Wenn
+ dem so ist, wird die Funktion vor jeder Serialisierung ausgeführt. Sie muss ein assoziatives Array von Schlüssel/Wert-Paaren
+ erzeugen und zurückgeben, die die serialisierte Form des Objekts darstellen. Wird kein Array
+ zurückgegeben, wird ein <classname>TypeError</classname> geworfen.
+ </para>
+ <note>
+ <para>
+ Sind sowohl <link linkend="object.serialize">__serialize()</link> als auch
+ <link linkend="object.sleep">__sleep()</link> im selben Objekt definiert, wird nur
+ <link linkend="object.serialize">__serialize()</link> aufgerufen.
+ <link linkend="object.sleep">__sleep()</link> wird ignoriert.
+ Implementiert das Objekt das <link linkend="class.serializable">Serializable</link>
+ Interface, wird die <literal>serialize()</literal> Methode des Interface ignoriert und
+ <link linkend="object.serialize">__serialize()</link> statt dessen verwendet.
+ </para>
+ </note>
+ <para>
+ Die beabsichtigte Verwendung von <link linkend="object.serialize">__serialize()</link> ist,
+ eine serialisierungsfreundlich beliebige Darstellung eines Objekts zu definieren.
+ Elemente des Arrays dürfen Eigenschaften entsprechen, aber das ist nicht erforderlich.
+ </para>
+ <para>
+ Umgekehrt überprüft <function>unserialize</function> die Anwesenheit einer Funktion mit dem magischen
+ Namen <link linkend="object.unserialize">__unserialize()</link>. Falls vorhanden, wird dieser Funktion
+ das wiederhergestellte Array übergeben, das von <link linkend="object.serialize">__serialize()</link>
+ zurückgegeben wurde. Sie kann dann dementsprechend die Eigenschaften des Objekts aus diesem Array
+ wiederherstellen.
+ </para>
+ <note>
+ <para>
+ Sind sowohl <link linkend="object.unserialize">__unserialize()</link> als auch
+ <link linkend="object.wakeup">__wakeup()</link> im selben Objekt definiert, wird nur
+ <link linkend="object.unserialize">__unserialize()</link> aufgerufen.
+ <link linkend="object.wakeup">__wakeup()</link> wird ignoriert.
+ </para>
+ </note>
+ <note>
+ <para>
+ Dieses Feature ist seit PHP 7.4.0 verfügbar.
+ </para>
+ </note>
+ <example>
+ <title>Serialize und unserialize</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+class Connection
+{
+ protected $link;
+ private $dsn, $username, $password;
+
+ public function __construct($dsn, $username, $password)
+ {
+ $this->dsn = $dsn;
+ $this->username = $username;
+ $this->password = $password;
+ $this->connect();
+ }
+
+ private function connect()
+ {
+ $this->link = new PDO($this->dsn, $this->username, $this->password);
+ }
+
+ public function __serialize(): array
+ {
+ return [
+ 'dsn' => $this->dsn,
+ 'user' => $this->username,
+ 'pass' => $this->password,
+ ];
+ }
+
+ public function __unserialize(array $data): void
+ {
+ $this->dsn = $data['dsn'];
+ $this->username = $data['user'];
+ $this->password = $data['pass'];
+
+ $this->connect();
+ }
+}?>
+]]>
+ </programlisting>
+ </example>
+ </sect2>
+
<sect2 xml:id="language.oop5.magic.tostring">
<title><link linkend="object.tostring">__toString()</link></title>
<methodsynopsis xml:id="object.tostring">
Modified: phpdoc/de/trunk/reference/curl/curlfile/construct.xml
===================================================================
--- phpdoc/de/trunk/reference/curl/curlfile/construct.xml 2020-04-05 07:46:56 UTC (rev 349621)
+++ phpdoc/de/trunk/reference/curl/curlfile/construct.xml 2020-04-05 10:39:27 UTC (rev 349622)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
-<!-- EN-Revision: 349411 Maintainer: tihox Status: ready -->
+<!-- EN-Revision: 349453 Maintainer: tihox Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="curlfile.construct" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
Modified: phpdoc/de/trunk/reference/math/functions/pi.xml
===================================================================
--- phpdoc/de/trunk/reference/math/functions/pi.xml 2020-04-05 07:46:56 UTC (rev 349621)
+++ phpdoc/de/trunk/reference/math/functions/pi.xml 2020-04-05 10:39:27 UTC (rev 349622)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision: 1.1 -->
-<!-- EN-Revision: 297028 Maintainer: hholzgra Status: ready -->
+<!-- EN-Revision: 349536 Maintainer: hholzgra Status: ready -->
<refentry xml:id="function.pi" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>pi</refname>
@@ -13,10 +13,7 @@
<void/>
</methodsynopsis>
<simpara>
- Die Funktion liefert einen Näherungswert von Pi. Die Anzahl
- der signifikanten Nachkommastellen wird durch die
- &php.ini;-Direktive <link linkend="ini.precision">precision</link>
- festgelegt, der Vorgabewert beträgt <literal>14</literal> Stellen.
+ Die Funktion liefert einen Näherungswert von Pi.
Sie können auch die Konstante <constant>M_PI</constant>
benutzen, die das gleiche Resultat liefert wie die
<function>pi</function>.
Modified: phpdoc/de/trunk/reference/var/functions/serialize.xml
===================================================================
--- phpdoc/de/trunk/reference/var/functions/serialize.xml 2020-04-05 07:46:56 UTC (rev 349621)
+++ phpdoc/de/trunk/reference/var/functions/serialize.xml 2020-04-05 10:39:27 UTC (rev 349622)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
-<!-- EN-Revision: 346043 Maintainer: sammywg Status: ready -->
+<!-- EN-Revision: 349590 Maintainer: sammywg Status: ready -->
<refentry xml:id="function.serialize" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
@@ -43,10 +43,10 @@
</para>
<para>
Wenn Objekte serialisiert werden, versucht PHP die
- Methode <link linkend="object.sleep">__sleep</link>
+ Methode <link linkend="object.serialize">__serialize()</link> oder <link linkend="object.sleep">__sleep</link>
vor der Serialisierung
aufzurufen. Dies erlaubt einem Objekt z.B. letzte "Aufräumaktionen",
- bevor es serialisiert wird. Ebenso wird die Methode <link
+ bevor es serialisiert wird. Ebenso wird die Methode <link linkend="object.unserialize">__unserialize()</link> oder <link
linkend="object.wakeup">__wakeup</link> aufgerufen, wenn das
Objekt mittels <function>unserialize</function> wiederhergestellt wird.
</para>
@@ -112,11 +112,11 @@
&reftitle.notes;
<note>
<para>
- Beachte, dass viele eingebaute PHP Objekte nicht serialisiert
+ Es ist zu beachten, dass viele eingebaute PHP Objekte nicht serialisiert
werden können. Diejenigen mit dieser Eigenschaft implementieren
- entweder das <interfacename>Serializable</interfacename> Interface
- oder die magischen <link linkend="object.sleep">__sleep</link>
- und <link linkend="object.wakeup">__wakeup</link>
+ entweder das <interfacename>Serializable</interfacename> Interface oder die magischen
+ <link linkend="object.serialize">__serialize()</link>/<link linkend="object.unserialize">__unserialize()</link>
+ oder <link linkend="object.sleep">__sleep</link>/<link linkend="object.wakeup">__wakeup</link>
Methoden. Wenn eine eingebaute Klasse nicht mindestens eine dieser
Voraussetzungen erfüllt, kann sie nicht verlässlich serialisiert werden.
</para>
@@ -146,6 +146,8 @@
<member><link linkend="language.oop5.serialization">Objekte serialisieren</link></member>
<member><link linkend="object.sleep">__sleep</link></member>
<member><link linkend="object.wakeup">__wakeup</link></member>
+ <member><link linkend="object.serialize">__serialize()</link></member>
+ <member><link linkend="object.unserialize">__unserialize()</link></member>
</simplelist>
</para>
</refsect1>
Modified: phpdoc/de/trunk/reference/var/functions/unserialize.xml
===================================================================
--- phpdoc/de/trunk/reference/var/functions/unserialize.xml 2020-04-05 07:46:56 UTC (rev 349621)
+++ phpdoc/de/trunk/reference/var/functions/unserialize.xml 2020-04-05 10:39:27 UTC (rev 349622)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
-<!-- EN-Revision: 344075 Maintainer: sammywg Status: ready -->
+<!-- EN-Revision: 349590 Maintainer: sammywg Status: ready -->
<refentry xml:id="function.unserialize" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
@@ -51,8 +51,9 @@
<para>
Wenn die zu deserialisierende Variable ein Objekt ist, wird PHP nach der
erfolgreichen Wiederherstellung des Objekts automatisch versuchen, die
+ <link linkend="object.unserialize">__unserialize()</link>- oder
<link linkend="object.wakeup">__wakeup</link>-Methode
- aufzurufen (sofern diese existiert).
+ aufzurufen (sofern eine von diesen existiert).
</para>
<para>
<note>
@@ -216,9 +217,9 @@
function mycallback($classname)
{
- // einfach ein File einbinden, dass die Klassendefinitionen enthaelt
- // Sie erhalten $classname, womit Sie herausfinden koennen, welche
- // Klassendefinition benoetigt wird
+ // einfach eine Datei einbinden, dass die Klassendefinitionen enthält
+ // Sie erhalten $classname, womit Sie herausfinden können, welche
+ // Klassendefinition benötigt wird
}
?>
]]>
@@ -251,6 +252,8 @@
<member><link linkend="language.oop5.autoload">Autoloading von Klassen</link></member>
<member><link linkend="ini.unserialize-callback-func">unserialize_callback_func</link></member>
<member><link linkend="object.wakeup">__wakeup</link></member>
+ <member><link linkend="object.serialize">__serialize()</link></member>
+ <member><link linkend="object.unserialize">__unserialize()</link></member>
</simplelist>
</para>
</refsect1>
Modified: phpdoc/de/trunk/reference/zip/configure.xml
===================================================================
--- phpdoc/de/trunk/reference/zip/configure.xml 2020-04-05 07:46:56 UTC (rev 349621)
+++ phpdoc/de/trunk/reference/zip/configure.xml 2020-04-05 10:39:27 UTC (rev 349622)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
-<!-- EN-Revision: 346299 Maintainer: hholzgra Status: ready -->
+<!-- EN-Revision: 349534 Maintainer: hholzgra Status: ready -->
<section xml:id="zip.installation" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
&reftitle.install;
@@ -9,9 +9,11 @@
<section xml:id="zip.installation.new.linux">
<title>Linux systems</title>
<para>
- Um diese Funktionen nutzen zu können müssen sie PHP
- mit der Option <option role="configure">--enable-zip</option>
- übersetzen.
+ Von PHP 7.4.0 an muss, um diese Funktionen nutzen zu können, PHP
+ mit der Option <option role="configure">--with-zip</option>
+ kompiliert werden.
+ Zuvor musste Zip-Unterstützung durch Verwendung der
+ <option role="configure">--enable-zip</option> Konfigurationsoption aktiviert werden.
</para>
<para>
Mit PHP 5.6.0 wurde die <option role="configure">--with-libzip=DIR</option>
@@ -23,6 +25,7 @@
Von PHP 7.3.0 an wird die Kompilierung mit der gebündelten libzip nicht mehr
empfohlen, ist aber noch immer möglich, indem <option
role="configure">--without-libzip</option> zur Konfiguration hinzugefügt wird.
+ Von PHP 7.4.0 an ist die gebündelte libzip nicht mehr vorhanden.
</para>
</section>