Я использую Zend AMF для отправки удаленных объектов в Flex.Flex десериализует общие объекты из Zend AMF вместо строго типизированных объектов
Я определил класс Constant
и создал метод getASClassName()
. Затем я создал класс Action script в flex.
Объекты отправляются успешно, но их десериализуют до общего Objects
в Flex вместо конкретных.
EDIT: на сетевом мониторе в 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';
}
}
Определение класса в гибком:
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 код:
$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
)