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 license@zend.com so we can send you a copy immediately.
- Category
- Zend
- Copyright
- Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
- License
- New BSD License
- Package
- Zend_Amf
- Subpackage
- Parse_Amf3
- Version
- $Id$
\Zend_Amf_Parse_Amf3_Deserializer
Package: Zend_Amf\Parse_Amf3
Details
Returns
Throws
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-2014 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
Default value
array()
Details- Type
- array
array $_referenceObjects = array()
An array of reference objects per amf body
Default value
array()
Details- Type
- array
Methods
readArray() : array
Read amf array to PHP array
- array = 0x09 integer-data ( [ 1OCTET *amf3-data ] | [OCTET *amf3-data 1] | [ OCTET *amf-data ] )
ReturnsType | 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 ]
ReturnsType | 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:
ReturnsType | Description |
---|---|
int | float |
readObject() : object | array
Read an object from the AMF stream and convert it into a PHP object
Returns
Details
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
ReturnsType | 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.
ParametersName | Type | Description |
---|---|---|
$typeMarker | integer |
Type | Description |
---|---|
mixed | Whatever the corresponding PHP data type is |
Exception | Description |
---|---|
\Zend_Amf_Exception | for unidentified marker type |
readXmlString() : \SimpleXml
Convert XML to SimpleXml If user wants DomDocument they can use dom_import_simplexml
Returns
Type | Description |
---|---|
\SimpleXml | Object |