我们正在尝试从旧版本的Zend Framework升级到最新版本(1.11(。
我们必须向我无法访问的Flex应用程序发送一些ArrayCollections。ZF的Zend_Amf_Value_Messaging_ArrayCollection
的早期版本具有较新版本所没有的source
属性。
我曾尝试编辑Zend_Amf_Value_Messaging_ArrayCollection
类以具有source
属性,但ZF似乎没有向Flex应用程序发送对象(我通过调试代理注意到了这一点(。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?
我们最终决定使用ZendAMF,只有上一版本的Zend_Amf_Value_Messaging_ArrayCollection
是:
class Zend_Amf_Value_Messaging_ArrayCollection
{
public $source;
}
这允许我们仍然使用source
属性。