| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.serializer.introduction">
- <title>Introduction</title>
- <para>
- <classname>Zend_Serializer</classname> utilise une interface basée sur des adaptateurs
- afin de générer des représentations stockables de types php et inversement.
- </para>
- <example id="zend.serializer.introduction.example.dynamic">
- <title>Utiliser <classname>Zend_Serializer</classname></title>
- <para>
- Pour instancier un sérialiseur, vous devriez utiliser la méthode de fabrique
- d'adaptateurs:
- </para>
- <programlisting language="php"><![CDATA[
- $serializer = Zend_Serializer::factory('PhpSerialize');
- // $serializer est instance de Zend_Serializer_Adapter_AdapterInterface,
- // précisémment Zend_Serializer_Adapter_PhpSerialize
- try {
- $serialized = $serializer->serialize($data);
- // $serialized est une chaine
- $unserialized = $serializer->unserialize($serialized);
- // ici $data == $unserialized
- } catch (Zend_Serializer_Exception $e) {
- echo $e;
- }
- ]]></programlisting>
- </example>
- <para>
- La méhode <methodname>serialize</methodname> génère une chaine. Pour regénérer la donnée
- utilisez la méthode <methodname>unserialize</methodname>.
- </para>
- <para>
- Si une erreur survient à la sérialisation ou désérialisation,
- <classname>Zend_Serializer</classname> enverra une
- <classname>Zend_Serializer_Exception</classname>.
- </para>
- <para>
- Pour configurer l'adaptateur, vous pouvez passer un tableau ou un objet instance de
- <classname>Zend_Config</classname> à la méthode <methodname>factory</methodname> ou aux
- méthode <methodname>un-/serialize</methodname>:
- </para>
- <programlisting language="php"><![CDATA[
- $serializer = Zend_Serializer::factory('Wddx', array(
- 'comment' => 'serialized by Zend_Serializer',
- ));
- try {
- $serialized = $serializer->serialize($data, array('comment' => 'change comment'));
- $unserialized = $serializer->unserialize($serialized, array(/* options pour unserialize */));
- } catch (Zend_Serializer_Exception $e) {
- echo $e;
- }
- ]]></programlisting>
- <para>
- Les options passées à <methodname>factory</methodname> sont valides pour l'objet crée.
- Vous pouvez alors changer ces options grâce à la méthode <methodname>setOption(s)</methodname>.
- Pour changer des options pour un seul appel, passez celles-ci en deuxième arguement des méthodes
- <methodname>serialize</methodname> ou <methodname>unserialize</methodname>.
- </para>
- <example id="zend.serializer.introduction.example.static.php">
- <title>Utiliser l'interface statique de Zend_Serializer</title>
- <para>
- Vous pouvez enregistrer une adaptateur spécifique comme adaptateur par défaut à utiliser
- avec <classname>Zend_Serializer</classname>. Par défaut, l'adaptateur enregistré est
- <classname>PhpSerialize</classname> mais vous pouvez le changer au moyen de la méthode
- statique <methodname>setDefaultAdapter()</methodname>.
- </para>
- <programlisting language="php"><![CDATA[
- Zend_Serializer::setDefaultAdapter('PhpSerialize', $options);
- // ou
- $serializer = Zend_Serializer::factory('PhpSerialize', $options);
- Zend_Serializer::setDefaultAdapter($serializer);
- try {
- $serialized = Zend_Serializer::serialize($data, $options);
- $unserialized = Zend_Serializer::unserialize($serialized, $options);
- } catch (Zend_Serializer_Exception $e) {
- echo $e;
- }
- ]]></programlisting>
- </example>
- </sect1>
|