|
|
@@ -0,0 +1,454 @@
|
|
|
+<?xml version="1.0" encoding="UTF-8"?>
|
|
|
+<!-- Reviewed: no -->
|
|
|
+<sect1 id="zend.serializer.adapter">
|
|
|
+ <title>Zend_Serializer_Adapter</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Les adaptateurs <classname>Zend_Serializer</classname> servent à changer les méthodes
|
|
|
+ de sérialisation facilement.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Chaque adaptateurs possède ses propres atouts et inconvénients. Dans certains cas, certains
|
|
|
+ types PHP (objets) ne peuvent être représentés sous forme de chaines. Dans ce cas, ces types
|
|
|
+ seront convertis vers un type sérialisable (par exemple, les objets seront convertis en tableaux).
|
|
|
+ Ci ceci échoue, une exception <classname>Zend_Serializer_Exception</classname> sera alors envoyée.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Voici une liste des adaptateurs disponibles.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <sect2 id="zend.serializer.adapter.phpserialize">
|
|
|
+ <title>Zend_Serializer_Adapter_PhpSerialize</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Cet adaptateur utilise les fonctions PHP <methodname>un/serialize</methodname> et
|
|
|
+ constitue un bon choix d'adaptateur par défaut.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Aucune option de configuration n'existe pour cet adaptateur.
|
|
|
+ </para>
|
|
|
+ </sect2>
|
|
|
+
|
|
|
+ <sect2 id="zend.serializer.adapter.igbinary">
|
|
|
+ <title>Zend_Serializer_Adapter_Igbinary</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ <ulink url="http://opensource.dynamoid.com">Igbinary</ulink> est un logiciel
|
|
|
+ Open Source crée par Sulake Dynamoid Oy. C'est un remplaçant du sérialiseur utiliser
|
|
|
+ par PHP. Au lieu d'utiliser une représentation textuelle (couteuse en temps et en poids),
|
|
|
+ igbinary représente les structures de données PHP dans un format binaire compact.
|
|
|
+ Les gains sont importants lorsqu'un système de stockage comme memcache est utilisé
|
|
|
+ pour les données sérialisées.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ L'extension PHP igbinary est requise pour l'utilisation de cet adaptateur.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Aucune option de configuration n'existe pour cet adaptateur.
|
|
|
+ </para>
|
|
|
+ </sect2>
|
|
|
+
|
|
|
+ <sect2 id="zend.serializer.adapter.wddx">
|
|
|
+ <title>Zend_Serializer_Adapter_Wddx</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ <ulink url="http://wikipedia.org/wiki/WDDX">WDDX</ulink> (Web Distributed Data eXchange)
|
|
|
+ est à la fois un langage de programmation, une plateforme et un mecanisme de transport
|
|
|
+ de données entre différents environnements.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Cet adaptateur utilise simplement les fonctions PHP
|
|
|
+ <ulink url="http://php.net/manual/book.wddx.php">wddx_*()</ulink>. Veuillez lire
|
|
|
+ le manuel PHP afin de vérifier la disponibilité et l'installation de ces fonctions.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Aussi, l'extension PHP <ulink
|
|
|
+ url="http://php.net/manual/book.simplexml.php">SimpleXML</ulink> est utilisée
|
|
|
+ pour vérifier si une valeur <constant>NULL</constant> retournée par
|
|
|
+ <methodname>wddx_unserialize()</methodname> est basée sur une donnée sérialisée
|
|
|
+ <constant>NULL</constant> ou au contraire des données non valides
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Les options disponibles sont:
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <table>
|
|
|
+ <title>Options Zend_Serializer_Adapter_Wddx</title>
|
|
|
+
|
|
|
+ <tgroup cols="4">
|
|
|
+ <thead>
|
|
|
+ <row>
|
|
|
+ <entry>Option</entry>
|
|
|
+
|
|
|
+ <entry>Type de donnée</entry>
|
|
|
+
|
|
|
+ <entry>Valeur par défaut</entry>
|
|
|
+
|
|
|
+ <entry>Description</entry>
|
|
|
+ </row>
|
|
|
+ </thead>
|
|
|
+
|
|
|
+ <tbody>
|
|
|
+ <row>
|
|
|
+ <entry><emphasis>comment</emphasis></entry>
|
|
|
+
|
|
|
+ <entry><type>chaine</type></entry>
|
|
|
+
|
|
|
+ <entry></entry>
|
|
|
+
|
|
|
+ <entry>
|
|
|
+ Un commentaire qui apparait dans l'en-tête du paquet.
|
|
|
+ </entry>
|
|
|
+ </row>
|
|
|
+ </tbody>
|
|
|
+ </tgroup>
|
|
|
+ </table>
|
|
|
+ </sect2>
|
|
|
+
|
|
|
+ <sect2 id="zend.serializer.adapter.json">
|
|
|
+ <title>Zend_Serializer_Adapter_Json</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ L'adaptateur <acronym>JSON</acronym> acréer un pont vers
|
|
|
+ <classname>Zend_Json</classname> et/ou ext/json (l'extension json de PHP).
|
|
|
+ Pour plus d'informations, lisez le manuel de <link
|
|
|
+ linkend= "zend.json.introduction">Zend_Json</link>.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Les options disponibles sont:
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <table>
|
|
|
+ <title>Options Zend_Serializer_Adapter_Json</title>
|
|
|
+
|
|
|
+ <tgroup cols="4">
|
|
|
+ <thead>
|
|
|
+ <row>
|
|
|
+ <entry>Option</entry>
|
|
|
+
|
|
|
+ <entry>Type de donnée</entry>
|
|
|
+
|
|
|
+ <entry>Valeur par défaut</entry>
|
|
|
+
|
|
|
+ <entry>Description</entry>
|
|
|
+ </row>
|
|
|
+ </thead>
|
|
|
+
|
|
|
+ <tbody>
|
|
|
+ <row>
|
|
|
+ <entry><emphasis>cycleCheck</emphasis></entry>
|
|
|
+
|
|
|
+ <entry><type>booléen</type></entry>
|
|
|
+
|
|
|
+ <entry>false</entry>
|
|
|
+
|
|
|
+ <entry>
|
|
|
+ Voyez <xref linkend= "zend.json.advanced.objects1"/>
|
|
|
+ </entry>
|
|
|
+ </row>
|
|
|
+
|
|
|
+ <row>
|
|
|
+ <entry><emphasis>objectDecodeType</emphasis></entry>
|
|
|
+
|
|
|
+ <entry><type>Zend_Json::TYPE_*</type></entry>
|
|
|
+
|
|
|
+ <entry>Zend_Json::TYPE_ARRAY</entry>
|
|
|
+
|
|
|
+ <entry>
|
|
|
+ Voyez <xref linkend= "zend.json.advanced.objects1"/>
|
|
|
+ </entry>
|
|
|
+ </row>
|
|
|
+
|
|
|
+ <row>
|
|
|
+ <entry><emphasis>enableJsonExprFinder</emphasis></entry>
|
|
|
+
|
|
|
+ <entry><type>booléen</type></entry>
|
|
|
+
|
|
|
+ <entry>false</entry>
|
|
|
+
|
|
|
+ <entry>
|
|
|
+ Voyez <xref linkend= "zend.json.advanced.expr"/>
|
|
|
+ </entry>
|
|
|
+ </row>
|
|
|
+ </tbody>
|
|
|
+ </tgroup>
|
|
|
+ </table>
|
|
|
+ </sect2>
|
|
|
+
|
|
|
+ <sect2 id="zend.serializer.adapter.amf03">
|
|
|
+ <title>Zend_Serializer_Adapter_Amf 0 et 3</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Les adaptateurs <acronym>AMF</acronym>, <classname>Zend_Serializer_Adapter_Amf0</classname>
|
|
|
+ et <classname>Zend_Serializer_Adapter_Amf3</classname>, sont un pont vers le sérialiseur
|
|
|
+ du composant <classname>Zend_Amf</classname>. Veuillez lire la documentation de <link
|
|
|
+ linkend= "zend.amf.introduction">Zend_Amf documentation</link> pour plus
|
|
|
+ d'informations.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Aucune option de configuration n'existe pour cet adaptateur.
|
|
|
+ </para>
|
|
|
+ </sect2>
|
|
|
+
|
|
|
+ <sect2 id="zend.serializer.adapter.pythonpickle">
|
|
|
+ <title>Zend_Serializer_Adapter_PythonPickle</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Cet adaptateur convertit des types PHP vers une chaine <ulink
|
|
|
+ url="http://docs.python.org/library/pickle.html">Python Pickle</ulink>
|
|
|
+ Grâce à lui, vous pouvez lire en Python des données sérialisées de PHP et
|
|
|
+ inversement.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Les options disponibles sont:
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <table>
|
|
|
+ <title>Options Zend_Serializer_Adapter_PythonPickle</title>
|
|
|
+
|
|
|
+ <tgroup cols="4">
|
|
|
+ <thead>
|
|
|
+ <row>
|
|
|
+ <entry>Option</entry>
|
|
|
+
|
|
|
+ <entry>Type de donnée</entry>
|
|
|
+
|
|
|
+ <entry>Valeur par défaut</entry>
|
|
|
+
|
|
|
+ <entry>Description</entry>
|
|
|
+ </row>
|
|
|
+ </thead>
|
|
|
+
|
|
|
+ <tbody>
|
|
|
+ <row>
|
|
|
+ <entry><emphasis>protocol</emphasis></entry>
|
|
|
+
|
|
|
+ <entry><type>entier</type> (0 | 1 | 2 | 3)</entry>
|
|
|
+
|
|
|
+ <entry>0</entry>
|
|
|
+
|
|
|
+ <entry>
|
|
|
+ La version du protocole Pickle pour <methodname>serialize</methodname>
|
|
|
+ </entry>
|
|
|
+ </row>
|
|
|
+ </tbody>
|
|
|
+ </tgroup>
|
|
|
+ </table>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Le transtypage (PHP vers Python) se comporte comme suit:
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <table>
|
|
|
+ <title>Le transtypage (PHP vers Python)</title>
|
|
|
+
|
|
|
+ <tgroup cols="2">
|
|
|
+ <thead>
|
|
|
+ <row>
|
|
|
+ <entry>Type PHP</entry>
|
|
|
+
|
|
|
+ <entry>Type Python</entry>
|
|
|
+ </row>
|
|
|
+ </thead>
|
|
|
+
|
|
|
+ <tbody>
|
|
|
+ <row>
|
|
|
+ <entry><type>NULL</type></entry>
|
|
|
+
|
|
|
+ <entry><type>None</type></entry>
|
|
|
+ </row>
|
|
|
+
|
|
|
+ <row>
|
|
|
+ <entry><type>booléen</type></entry>
|
|
|
+
|
|
|
+ <entry><type>booléen</type></entry>
|
|
|
+ </row>
|
|
|
+
|
|
|
+ <row>
|
|
|
+ <entry><type>entier</type></entry>
|
|
|
+
|
|
|
+ <entry><type>entier</type></entry>
|
|
|
+ </row>
|
|
|
+
|
|
|
+ <row>
|
|
|
+ <entry><type>flottant</type></entry>
|
|
|
+
|
|
|
+ <entry><type>flottant</type></entry>
|
|
|
+ </row>
|
|
|
+
|
|
|
+ <row>
|
|
|
+ <entry><type>chaine</type></entry>
|
|
|
+
|
|
|
+ <entry><type>chaine</type></entry>
|
|
|
+ </row>
|
|
|
+
|
|
|
+ <row>
|
|
|
+ <entry><type>tableau</type></entry>
|
|
|
+
|
|
|
+ <entry><type>liste</type></entry>
|
|
|
+ </row>
|
|
|
+
|
|
|
+ <row>
|
|
|
+ <entry><type>tableau associatif</type></entry>
|
|
|
+
|
|
|
+ <entry><type>dictionnaire</type></entry>
|
|
|
+ </row>
|
|
|
+
|
|
|
+ <row>
|
|
|
+ <entry><type>objet</type></entry>
|
|
|
+
|
|
|
+ <entry><type>dictionnaire</type></entry>
|
|
|
+ </row>
|
|
|
+ </tbody>
|
|
|
+ </tgroup>
|
|
|
+ </table>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Le transtypage (Python vers PHP) se comporte comme suit:
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <table>
|
|
|
+ <title>Transtypage (Python vers PHP):</title>
|
|
|
+
|
|
|
+ <tgroup cols="2">
|
|
|
+ <thead>
|
|
|
+ <row>
|
|
|
+ <entry>Type Python</entry>
|
|
|
+
|
|
|
+ <entry>Type PHP</entry>
|
|
|
+ </row>
|
|
|
+ </thead>
|
|
|
+
|
|
|
+ <tbody>
|
|
|
+ <row>
|
|
|
+ <entry><type>None</type></entry>
|
|
|
+
|
|
|
+ <entry><type>NULL</type></entry>
|
|
|
+ </row>
|
|
|
+
|
|
|
+ <row>
|
|
|
+ <entry><type>booléen</type></entry>
|
|
|
+
|
|
|
+ <entry><type>booléen</type></entry>
|
|
|
+ </row>
|
|
|
+
|
|
|
+ <row>
|
|
|
+ <entry><type>entier</type></entry>
|
|
|
+
|
|
|
+ <entry><type>entier</type></entry>
|
|
|
+ </row>
|
|
|
+
|
|
|
+ <row>
|
|
|
+ <entry><type>long</type></entry>
|
|
|
+
|
|
|
+ <entry>
|
|
|
+ <type>entier</type>
|
|
|
+ | <type>flottant</type>
|
|
|
+ | <type>chaine</type>
|
|
|
+ | <classname>Zend_Serializer_Exception</classname>
|
|
|
+ </entry>
|
|
|
+ </row>
|
|
|
+
|
|
|
+ <row>
|
|
|
+ <entry><type>flottant</type></entry>
|
|
|
+
|
|
|
+ <entry><type>flottant</type></entry>
|
|
|
+ </row>
|
|
|
+
|
|
|
+ <row>
|
|
|
+ <entry><type>chaine</type></entry>
|
|
|
+
|
|
|
+ <entry><type>chaine</type></entry>
|
|
|
+ </row>
|
|
|
+
|
|
|
+ <row>
|
|
|
+ <entry><type>octets</type></entry>
|
|
|
+
|
|
|
+ <entry><type>chaine</type></entry>
|
|
|
+ </row>
|
|
|
+
|
|
|
+ <row>
|
|
|
+ <entry><type>chaine Unicode</type></entry>
|
|
|
+
|
|
|
+ <entry><type>chaine UTF-8</type></entry>
|
|
|
+ </row>
|
|
|
+
|
|
|
+ <row>
|
|
|
+ <entry><type>list</type></entry>
|
|
|
+
|
|
|
+ <entry><type>tableau</type></entry>
|
|
|
+ </row>
|
|
|
+
|
|
|
+ <row>
|
|
|
+ <entry><type>tuple</type></entry>
|
|
|
+
|
|
|
+ <entry><type>tableau</type></entry>
|
|
|
+ </row>
|
|
|
+
|
|
|
+ <row>
|
|
|
+ <entry><type>dictionnaire</type></entry>
|
|
|
+
|
|
|
+ <entry><type>tableau associatif</type></entry>
|
|
|
+ </row>
|
|
|
+
|
|
|
+ <row>
|
|
|
+ <entry>Tout autre type</entry>
|
|
|
+
|
|
|
+ <entry><classname>Zend_Serializer_Exception</classname></entry>
|
|
|
+ </row>
|
|
|
+ </tbody>
|
|
|
+ </tgroup>
|
|
|
+ </table>
|
|
|
+ </sect2>
|
|
|
+
|
|
|
+ <sect2 id="zend.serializer.adapter.phpcode">
|
|
|
+ <title>Zend_Serializer_Adapter_PhpCode</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Cet adaptateur génère une chaine représentant du code analysable par PHP via <ulink
|
|
|
+ url="http://php.net/manual/function.var-export.php">var_export()</ulink>.A la
|
|
|
+ désérialisation, les données seront exécutées par <ulink
|
|
|
+ url="http://php.net/manual/function.eval.php">eval</ulink>.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Aucune option de configuration n'existe pour cet adaptateur.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <warning>
|
|
|
+ <title>Désérialiser des objets</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Les objets seront sérialisés en utilisant la méthode magique<ulink
|
|
|
+ url="http://php.net/manual/language.oop5.magic.php#language.oop5.magic.set-state">__set_state</ulink>
|
|
|
+ Si la classe ne propose pas cette méthode, une erreur fatale aboutira.
|
|
|
+ </para>
|
|
|
+ </warning>
|
|
|
+
|
|
|
+ <warning>
|
|
|
+ <title>Utilisation de eval()</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ L'adaptateur <classname>PhpCode</classname> utilise <methodname>eval()</methodname>
|
|
|
+ pour désérialiser. Ceci mène à des problèmes de performance et de sécurité, un nouveau processus
|
|
|
+ sera crée. Typiquement, vous devriez utiliser l'adaptateur
|
|
|
+ <methodname>PhpSerialize</methodname> à moins que vous ne vouliez que les données sérialisées
|
|
|
+ ne soient analysables à l'oeil humain.
|
|
|
+ </para>
|
|
|
+ </warning>
|
|
|
+ </sect2>
|
|
|
+</sect1>
|
|
|
+<!--
|
|
|
+vim:se ts=4 sw=4 et:
|
|
|
+-->
|