Amf/Parse/Amf3/Deserializer.php
Zend Framework
LICENSE
This source file is subject to the new BSD license that is bundled with this package in the file LICENSE.txt. It is also available through the world-wide-web at this URL: http://framework.zend.com/license/new-bsd If you did not receive a copy of the license and are unable to obtain it through the world-wide-web, please send an email to [email protected] so we can send you a copy immediately.
- Category
- Zend
- Copyright
- Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- License
- New BSD License
- Package
- Zend_Amf
- Subpackage
- Parse_Amf3
- Version
- $Id: Deserializer.php 24593 2012-01-05 20:35:02Z matthew $
\Zend_Amf_Parse_Amf3_Deserializer
Read an AMF3 input stream and convert it into PHP data types.
Logic for deserialization of the AMF envelop is based on resources supplied by Adobe Blaze DS. For and example of deserialization please review the BlazeDS source tree.
- Parent(s)
- \Zend_Amf_Parse_Deserializer
- Copyright
- Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- License
- New BSD License
- Todo
- readObject to handle Typed Objects
- Todo
- readXMLStrimg to be implemented.
- Todo
- Class could be implemented as Factory Class with each data type it's own class.
Properties


array $_referenceDefinitions = array()
An array of reference class definitions per body
array()
Details- Type
- array


array $_referenceObjects = array()
An array of reference objects per amf body
array()
Details- Type
- array


array $_referenceStrings = array()
An array of reference strings per amf body
array()
Details- Type
- array


\Zend_Amf_Parse_InputStream $_stream =
The raw string that represents the AMF request.
Inherited from: \Zend_Amf_Parse_Deserializer::$$_stream- Type
- \Zend_Amf_Parse_InputStream
- Inherited_from
- \Zend_Amf_Parse_Deserializer::$$_stream
Methods


__construct(\Zend_Amf_Parse_InputStream $stream) : void
Name | Type | Description |
---|---|---|
$stream | \Zend_Amf_Parse_InputStream |


readArray() : array
Read amf array to PHP array
- array = 0x09 integer-data ( [ 1OCTET *amf3-data ] | [OCTET *amf3-data 1] | [ OCTET *amf-data ] )
Type | Description |
---|---|
array |


readDate() : \Zend_Date
Read and deserialize a date
Data is the number of milliseconds elapsed since the epoch of midnight, 1st Jan 1970 in the UTC time zone. Local time zone information is not sent to flash.
- date = 0x08 integer-data [ number-data ]
Type | Description |
---|---|
\Zend_Date |


readInteger() : int | float
Read and deserialize an integer
AMF 3 represents smaller integers with fewer bytes using the most significant bit of each byte. The worst case uses 32-bits to represent a 29-bit number, which is what we would have done with no compression. - 0x00000000 - 0x0000007F : 0xxxxxxx - 0x00000080 - 0x00003FFF : 1xxxxxxx 0xxxxxxx - 0x00004000 - 0x001FFFFF : 1xxxxxxx 1xxxxxxx 0xxxxxxx - 0x00200000 - 0x3FFFFFFF : 1xxxxxxx 1xxxxxxx 1xxxxxxx xxxxxxxx - 0x40000000 - 0xFFFFFFFF : throw range exception
0x04 -> integer type code, followed by up to 4 bytes of data.
Parsing integers on OSFlash for the AMF3 integer data format:
Type | Description |
---|---|
int | float |


readObject() : object | array
Read an object from the AMF stream and convert it into a PHP object
Type | Description |
---|---|
object | array |
- Todo
- Rather than using an array of traitsInfo create Zend_Amf_Value_TraitsInfo


readString() : String
Read and deserialize a string
Strings can be sent as a reference to a previously occurring String by using an index to the implicit string reference table. Strings are encoding using UTF-8 - however the header may either describe a string literal or a string reference.
- string = 0x06 string-data
- string-data = integer-data [ modified-utf-8 ]
- modified-utf-8 = *OCTET
Type | Description |
---|---|
String |


readTypeMarker(integer $typeMarker = null) : mixed
Read AMF markers and dispatch for deserialization
Checks for AMF marker types and calls the appropriate methods for deserializing those marker types. markers are the data type of the following value.
Name | Type | Description |
---|---|---|
$typeMarker | integer |
Type | Description |
---|---|
mixed | Whatever the corresponding PHP data type is |
Exception | Description |
---|---|
\Zend_Amf_Exception | for unidentified marker type |