Flex десериализует универсальные объекты из Zend AMF вместо строго типизированных объектов - PullRequest
0 голосов
/ 04 марта 2012

Я использую 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
        )

1 Ответ

0 голосов
/ 05 марта 2012

Еще один ответ в области удаленного взаимодействия Flex / PHP.

Решение было довольно простым - мне нужно было изменить com.my.project.valueobjects.Constant на Constant на стороне PHP, и это было все.

Надеюсь, это поможет кому-то в будущем.

...