ZendAMF 1.11和缺少的来源

时间:2011-10-04 08:29:56

标签: arraycollection zend-amf

我们正在尝试从旧版本的Zend Framework升级到最新版本(1.11)。

我们必须将一些ArrayCollections发送到我无法访问的Flex-app。以前版本的ZF Zend_Amf_Value_Messaging_ArrayCollection具有source属性,新版本没有该属性。

我已经尝试编辑Zend_Amf_Value_Messaging_ArrayCollection类以获得source属性,但似乎ZF不会将对象发送到Flex-app(我已经注意到通过调试代理) 。 ArrayCollection仍然具有正确的键(AFAIK,从0 - > 3开始),但值为NULL

这是一个小型测试文件:

$c = new RoomCategoryVO();
$c->name = 'root';
$c->childCategories = new Zend_Amf_Value_Messaging_ArrayCollection();

$cc1 = new RoomCategoryVO();
$cc1->sortPriority = 2;
$cc1->name = $this->xml->roomService->windows;
$cc1->parentCategory = $c;
$cc1->childItems = new Zend_Amf_Value_Messaging_ArrayCollection();
$re11 = new ElementVO();
$re11->id = "simpleWindow";
$re11->name = $this->xml->roomService->window;
$re11->type = 'SIMPLE_WINDOW';
$re11->icon = 'assets/runtime/images/schemeIcons/simpleWindow.png';
//$cc1->childItems->source[] = $re11;
$cc1->childItems[] = $re11;


//$c->childCategories->source[] = $cc1;
$c->childCategories->append($cc1);

在评论中你会看到ZendAMF的“旧”方式,在它们之下是新的方式。

有没有办法让ZendAMF再次使用source属性而无需返回旧版本的ZF?

1 个答案:

答案 0 :(得分:0)

我们最终决定使用ZendAMF,只有前一版本的Zend_Amf_Value_Messaging_ArrayCollection为:

class Zend_Amf_Value_Messaging_ArrayCollection
{
    public $source;
}

这使我们仍然可以使用source属性。