File: Zend_Serializer-Introduction.xml

package info (click to toggle)
zendframework 1.12.9%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 133,584 kB
  • sloc: xml: 1,311,829; php: 570,173; sh: 170; makefile: 125; sql: 121
file content (98 lines) | stat: -rw-r--r-- 3,710 bytes parent folder | download | duplicates (2)
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>