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
|
<?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>
|