Flex正在从Zend AMF反序列化通用对象,而不是严格类型的对象

时间:2012-03-04 13:47:33

标签: php flex deserialization amf zend-amf

我正在使用Zend AMF将我的远程对象发送到Flex。

我已经定义了Constant类并创建了getASClassName()方法。然后我在flex中创建了Action脚本类。

对象发送成功,但它们在Flex中反序列化为通用Objects而不是特定的。

编辑:在Flex中的网络监视器上,我可以看到AMF值设置为com.my.project.valueobjects.Constant。虽然event.result中的数组包含Objects

我做错了什么?

Php类宣言:

<?php
namespace Project\Entity;

class Constant
{
    public $id;

    public $name;

    public  $description;

    public $value;

    public function getASClassName(){
        return 'com.my.project.valueobjects.Constant';
    }
}

flex中的类定义:

package com.my.project.valueobjects{

    [Bindable]
    [RemoteClass(alias="Constant")]
    public class Constant{
        public var id:Number;
        public var name:String;
        public var description:String;
        public var value:String;
    }

部分代码处理PHP中的Amf:

$server = new Zend_Amf_Server();
$server = $server->setClass("AmfService");
$server->setClassMap("com.my.project.valueobjects.Constant", "Constant");

php中的对象数组(使用print_r转储):

[04-Mar-2012 14:23:08] Array
(
    [0] => Project\Entity\Constant Object
        (
            [id] => 1
            [name] => name
            [description] => desc
            [value] => 5
            [_explicitType] => com.my.project.valueobjects.Constant
        )

1 个答案:

答案 0 :(得分:0)

Flex / PHP远程领域的另一个自我回答。

解决方案非常简单 - 我需要在PHP端将com.my.project.valueobjects.Constant更改为Constant,这就是一切。

希望这有助于将来。

相关问题