| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- 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 id="zend.serializer.adapter.wddx.table.options">
- <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 id="zend.serializer.adapter.json.table.options">
- <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
- <link linkend="zend.json.advanced.objects1">cette section</link>
- </entry>
- </row>
- <row>
- <entry><emphasis>objectDecodeType</emphasis></entry>
- <entry><type>Zend_Json::TYPE_*</type></entry>
- <entry>Zend_Json::TYPE_ARRAY</entry>
- <entry>
- Voyez
- <link linkend= "zend.json.advanced.objects1">this section</link>
- </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 id="zend.serializer.adapter.pythonpickle.table.options">
- <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 id="zend.serializer.adapter.pythonpickle.table.php2python">
- <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 id="zend.serializer.adapter.pythonpickle.table.python2php">
- <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:
- -->
|