Я использую Zend AMF для отправки своих удаленных объектов во Flex.
Я определил класс Constant
и создал метод getASClassName()
. Затем я создал класс сценария Action в flex.
Объекты отправляются успешно, но они десериализуются в общий Objects
во Flex вместо конкретных.
РЕДАКТИРОВАТЬ: На сетевом мониторе во 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;
}
Часть кода, обрабатывающая Amf в 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
)