Introduction to Zend Framework

 Learning Zend Framework

appendix

 Zend Framework Reference


  •  Zend_Gdata
  •  Zend_Http
  •  Zend_InfoCard
  •  Zend_Json
  •  Zend_Layout
  •  Zend_Ldap
  •  Zend_Loader
  •  Zend_Locale
  •  Zend_Log
  •  Zend_Mail
  •  Zend_Markup
  •  Zend_Measure
  •  Zend_Memory
  •  Zend_Mime
  •  Zend_Navigation
  •  Zend_Oauth
  •  Zend_OpenId
  •  Zend_Paginator
  •  Zend_Pdf
  •  Zend_ProgressBar
  •  Zend_Queue
  •  Zend_Reflection
  •  Zend_Registry
  •  Zend_Rest

  •  Zend_Search_Lucene
  •  Zend_Serializer
  •  Zend_Server
  •  Zend_Service
  •  Zend_Session
  •  Zend_Soap
  •  Zend_Tag
  •  Zend_Test
  •  Zend_Text
  •  Zend_TimeSync
  •  Zend_Tool
  •  Zend_Tool_Framework
  •  Zend_Tool_Project
  •  Zend_Translate
  •  Zend_Uri
  •  Zend_Validate
  •  Zend_Version
  •  Zend_View
  •  Zend_Wildfire
  •  Zend_XmlRpc
  • ZendX_Console_Process_Unix
  • ZendX_JQuery
  • Translation 96.1% Update 2010-11-28 - Revision 23448 - Version ZF 1.11.x

    Chapter 61. Zend_Serializer

    61.1. Einführung

    Zend_Serializer bietet ein Adapter-basierendes Interface um eine speicherbare Repräsentation von PHP Typen durch unterschiedliche Arten zu bieten und diese wiederherzustellen.

    Example 61.1. Verwenden des dynamischen Interfaces von Zend_Serializer

    Um einen Serializer zu instanzieren sollte man die Factory Methode mit dem Namen des Adapters verwenden:

    $serializer Zend_Serializer::factory('PhpSerialize');
    // Jetzt ist $serializer eine Instanz von
    // Zend_Serializer_Adapter_AdapterInterface, im speziellen
    // Zend_Serializer_Adapter_PhpSerialize

    try {
        
    $serialized $serializer->serialize($data);
        
    // jetzt ist $serialized ein String

        
    $unserialized $serializer->unserialize($serialized);
        
    // Jetzt ist $data == $unserialized
    } catch (Zend_Serializer_Exception $e) {
        echo 
    $e;
    }

    Die Methode serialize() erzeugt einen speicherbaren String. Um diese serialisierten Daten wiederherzustellen kann einfach die Methode unserialize() aufgerufen werden.

    Jedesmal wenn ein Fehler bei der Serialisierung oder Deserialisierung festgestellt wird wirft Zend_Serializer eine Zend_Serializer_Exception.

    Um einen gegebenen Serialisierungs-Adapter zu konfigurieren kann optional ein Array oder eine Instanz von Zend_Config an die factory() oder die Methoden serialize() und unserialize() übergeben werden:

    $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(
    /* Optionen für die Deserialisierung */)
        );
    } catch (
    Zend_Serializer_Exception $e) {
        echo 
    $e;
    }

    Optionen welche an factory() übergeben werden sind für das instanzierte Objekt gültig. Man kann diese Optionen verändern indem die setOption(s) Methoden verwendet werden. Um ein oder mehrere Optionen für einen einzelnen Aufruf zu verändern, können diese als zweites Argument an die Methoden serialize() oder unserialize() übergeben werden.

    Example 61.2. Das statische Interface von Zend_Serializer verwenden

    Man kann einen spezifischen Serialisierungs-Adapter als standardmäßigen Serialisierungs-Adapter für die Verwendung mit Zend_Serializer registrieren. Standardmäßig wird der Adapter PhpSerialize registriert. Aber man kann das verändern indem die statische Methode setDefaultAdapter() verwendet wird.

    Zend_Serializer::setDefaultAdapter('PhpSerialize'$options);
    // oder
    $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;
    }

    digg delicious meneame google twitter technorati facebook

    Comments

    Loading...