Zend_Serializer

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.

Example #1 Utiliser Zend_Serializer

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

  1. $serializer = Zend_Serializer::factory('PhpSerialize');
  2. // $serializer est instance de Zend_Serializer_Adapter_AdapterInterface,
  3. // précisémment Zend_Serializer_Adapter_PhpSerialize
  4.  
  5. try {
  6.     $serialized = $serializer->serialize($data);
  7.     // $serialized est une chaine
  8.  
  9.     $unserialized = $serializer->unserialize($serialized);
  10.     // ici $data == $unserialized
  11. } catch (Zend_Serializer_Exception $e) {
  12.     echo $e;
  13. }

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:

  1. $serializer = Zend_Serializer::factory('Wddx', array(
  2.     'comment' => 'serialized by Zend_Serializer',
  3. ));
  4.  
  5. try {
  6.     $serialized = $serializer->serialize($data, array('comment' => 'change comment'));
  7.     $unserialized = $serializer->unserialize($serialized, array(/* options pour unserialize */));
  8. } catch (Zend_Serializer_Exception $e) {
  9.     echo $e;
  10. }

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.

Example #2 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().

  1. Zend_Serializer::setDefaultAdapter('PhpSerialize', $options);
  2. // ou
  3. $serializer = Zend_Serializer::factory('PhpSerialize', $options);
  4. Zend_Serializer::setDefaultAdapter($serializer);
  5.  
  6. try {
  7.     $serialized   = Zend_Serializer::serialize($data, $options);
  8.     $unserialized = Zend_Serializer::unserialize($serialized, $options);
  9. } catch (Zend_Serializer_Exception $e) {
  10.     echo $e;
  11. }

Zend_Serializer