Zend_Serializer_AdapterZend_Serializer Adapter erzeugen eine Brücke für unterschiedliche
Methoden der Serialisierung mit geringem Aufwand.
Jeder Adpater hat andere Vor- und Nachteile. In einigen Fällen kann nicht jeder
PHP Datentyp (z.B. Objekte) in die Repräsentation eines Strings
konvertiert werden. In den meisten dieser Fälle wird der Typ in einen ähnlichen Typ
konvertiert der serialisierbar ist -- zum Beispiel werden PHP Objekte oft
zu Arrays gecastet. Wenn dies fehlschlägt wird eine
Zend_Serializer_Exception geworfen.
Anbei ist eine Liste der vorhandenen Adapter.
Zend_Serializer_Adapter_PhpSerialize
Dieser Adapter verwendet die eingebauten PHP Funktionen
un/serialize und ist eine gute Wahl für einen Standardadapter.
Es gibt keine konfigurierbaren Optionen für diesen Adapter.
Zend_Serializer_Adapter_IgbinaryIgbinary ist eine Open Source
Software welche von Sulake Dynamoid Oy herausgegeben wird. Statt Zeit und Platz auf
eine textuelle Repräsentation zu verschwenden, speichert igbinary Datenstrukturen von
PHP in einer kompakten binären Form. Die Einsparungen sind
signifikant wenn memcached oder ähnliche Hauptspeicher-basierte Speicher für die
Serialisierung der Daten verwendet wird.
Man muss die PHP Erweiterung igbinary am eigenen System installiert
haben um diesen Adapter verwenden zu können.
Dieser Adapter nimnt keine Optionen zur Konfiguration an.
Zend_Serializer_Adapter_WddxWDDX (Web Distributed Data eXchange)
ist eine Programmier-Sprache-, Plattform- und ein transport-neutraler datentauschender
Mechanismus für die Übergabe von Daten zwischen unterschiedlichen Umgebungen und
unterschiedlichen Computern.
Der Adapter verwendet einfach die wddx_*() PHP
Funktionen. Lesen Sie bitte im PHP Handbuch um herauszufinden ob man
Sie in der eigenen PHP Installation aktivieren kann.
Zusätzlich wird die PHP Erweiterung SimpleXML verwendet um zu
prüfen ob ein von wddx_unserialize() zurückgegebener
NULL Wert auf einem serialisierten NULL Wert
basiert, oder auf ungültigen Daten.
Vorhandene Optionen sind:
Optionen für Zend_Serializer_Adapter_WddxOptionDatentypStandardwertBeschreibungcommentstringEin optionales Kommentar welches im Paket Header vorkommt.
Zend_Serializer_Adapter_Json
Der JSON Adapter bietet eine Brücke zur Komponente
Zend_Json und zu ext/json. Lesen Sie bitte die Zend_Json Dokumentation für weitere
Informationen.
Vorhandene Optionen sind:
Optionen für Zend_Serializer_Adapter_JsonOptionDatentypStandardwertBeschreibungcycleCheckbooleanfalse
Siehe diesen
Abschnitt
objectDecodeTypeZend_Json::TYPE_*Zend_Json::TYPE_ARRAY
Siehe diesen
Abschnitt
enableJsonExprFinderbooleanfalse
Siehe diesen
Abschnitt
Zend_Serializer_Adapter_Amf 0 und 3
Die AMF Adapter Zend_Serializer_Adapter_Amf0
und Zend_Serializer_Adapter_Amf3 bieten eine Brücke zum
Serialisierer der Komponente Zend_Amf. Lesen Sie bitte die Zend_Amf Dokumentation für weitere
Informationen.
Es gibt keine Optionen für diese Adapter.
Zend_Serializer_Adapter_PythonPickle
Dieser Adapter konvertiert PHP Typen in eine Python Pickle String
Repräsentation. Mit Ihm können die serialisierten Daten mit Python gelesen werden und
Pickled Daten von Python mit PHP gelesen werden.
Vorhandene Optionen sind:
Optionen für Zend_Serializer_Adapter_PythonPickleOptionDatentypStandardwertBeschreibungprotocolinteger (0 | 1 | 2 | 3)0
Die Version des Pickle Protokolls welches bei
serialize verwendet wird
Der Wechsel von Datentypen (PHP zu Python) findet wie folgt statt:
Wechseln des Datentyps (PHP zu Python)PHP TypPython TypNULLNonebooleanbooleanintegerintegerfloatfloatstringstringarraylistassociative arraydictionaryobjectdictionary
Der Wechsel von Datentypen (Python zu PHP) findet wie folgt statt:
Wechseln des Datentyps (PHP zu Python)Python TypPHP TypNoneNULLbooleanbooleanintegerintegerlonginteger | float | string
| Zend_Serializer_ExceptionfloatfloatstringstringbytesstringUnicode stringUTF-8 stringlistarraytuplearraydictionaryassociative arrayAlle anderen TypenZend_Serializer_Exception
Zend_Serializer_Adapter_PhpCode
Dieser Adapter erzeugt eine Repräsentation an PHP Code der geparst
werden kann indem var_export()
verwendet wird. Bei der Wiederherstellung werden die Daten ausgeführt indem eval verwendet wird.
Es gibt keine Optionen für die Konfiguration dieses Adapters.
Objekte deserialisieren
Objekte werden serialisiert indem die magische Methode __set_state
verwendet wird. Wenn die Klasse diese Methode nicht implementiert wird während der
Ausführung ein fataler Fehler auftreten.
Verwendet eval()
Der Adapter PhpCode verwendet eval()
für die Deserialisierung. Das führt sowohl zu Performanz- als auch zu einem
potentiellen Sicherheitsproblem da ein neuer Prozess ausgeführt wird. Typischerweise
sollte der Adapter PhpSerialize verwendet werden solange
man die Lesbarkeit der serialisierten Daten durch Menschen benötigt.