# Introduction

`Zend_Serializer` utilise une interface basée sur des adaptateurs afin de générer des représentations stockables de types php et inversement.

## Utiliser `Zend_Serializer`

Pour instancier un sérialiseur, vous devriez utiliser la méthode de fabrique d'adaptateurs:

    $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;
    }

La méhode `serialize` génère une chaine. Pour regénérer la donnée utilisez la méthode `unserialize`.

Si une erreur survient à la sérialisation ou désérialisation, `Zend_Serializer` enverra une `Zend_Serializer_Exception`.

Pour configurer l'adaptateur, vous pouvez passer un tableau ou un objet instance de `Zend_Config` à la méthode `factory` ou aux méthode `un-/serialize`:

    $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;
    }

Les options passées à `factory` sont valides pour l'objet crée. Vous pouvez alors changer ces options grâce à la méthode `setOption(s)`. Pour changer des options pour un seul appel, passez celles-ci en deuxième arguement des méthodes `serialize` ou `unserialize`.

## Utiliser l'interface statique de Zend_Serializer

Vous pouvez enregistrer une adaptateur spécifique comme adaptateur par défaut à utiliser avec `Zend_Serializer`. Par défaut, l'adaptateur enregistré est `PhpSerialize` mais vous pouvez le changer au moyen de la méthode statique `setDefaultAdapter()`.

    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;
    }