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
$returnObj = new stdObj();
$explicitTypeField = Amfphp_Core_Amf_Constants::FIELD_EXPLICIT_TYPE;
$returnObj->$explicitTypeField = "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.
__construct(array $config)
array
optional key/value pairs in an associative array. Used to override default configuration values.
convertToTyped(mixed $obj) : mixed
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
mixed
mixed
filterDeserializedRequest(mixed $deserializedRequest) : mixed
Loads the class if necessary
mixed
mixed
filterDeserializedResponse(mixed $deserializedResponse) : mixed
mixed
mixed
markExplicitType(mixed $obj) : mixed
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
mixed
mixed
$customClassFolderPaths : array