Converts data from incoming packets with explicit types to custom classes, and vice versa for the outgoing packets.
This plugin can be deactivated if the project doesn't use custom classes.
The AMF deserializer reads a typed AMF object as a stdObj class, and sets the AMF type to a reserved "explicit type" field. This plugin will look at deserialized data and try to convert any such objects to a real custom class.
It works in the opposite way on the way out: The AMF serializer needs a stdObj class with the explicit type marker set to write a typed AMF object. This plugin will convert any typed PHP objects to a stdObj with the explicit type marker set.
The explicit type marker is defined in Amfphp_Core_Amf_Constants
If after deserialization the custom class is not found, the object is unmodified and the explicit type marker is left set. If the explicit type marker is already set in an outgoing object, the value is left as is.
This works for nested objects.
If you don't need strong typing in PHP but would like the objects in your client to be strongly typed, you can: For example a stdObj like this will be returned in AMF as MyVO
If you are using Flash, remember that you need to register the class alias so that Flash converts the MyVO AMF object to a Flash MyVO object. If you are using Flex you can do this with the RemoteClass metadata tag.
Located in /Amfphp/Plugins/AmfphpCustomClassConverter/AmfphpCustomClassConverter.php (line 50)
constructor.
if the object contains an explicit type marker, this method attempts to convert it to its typed counterpart if the typed class is already available, then simply creates a new instance of it. If not, attempts to load the file from the available service folders.
If then the class is still not available, the object is not converted note: This is not a recursive function. Rather the recusrion is handled by Amfphp_Core_Amf_Util::applyFunctionToContainedObjects. must be public so that Amfphp_Core_Amf_Util::applyFunctionToContainedObjects can call it
converts untyped objects to their typed counterparts. Loads the class if necessary
looks at the outgoing packet and sets the explicit type field so that the serializer sends it properly
sets the the explicit type marker on the object and its sub-objects. This is only done if it not already set, as in some cases the service class might want to do this manually.
note: This is not a recursive function. Rather the recusrion is handled by Amfphp_Core_Amf_Util::applyFunctionToContainedObjects. must be public so that Amfphp_Core_Amf_Util::applyFunctionToContainedObjects can call it
Documentation generated on Mon, 23 Jan 2012 17:22:01 -0300 by phpDocumentor 1.4.3