0

Zend AMF を使用してリモート オブジェクトを Flex に送信しています。

Constantクラスを定義し、getASClassName()メソッドを作成しました。次に、Flex で Action スクリプト クラスを作成しました。

オブジェクトは正常に送信されますが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';
    }
}

フレックスでのクラス定義:

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 で Amf を処理するコードの一部:

$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
        )
4

1 に答える 1

0

Flex/PHP リモート処理の分野でのもう 1 つの自己回答です。

解決策は非常に簡単でした-PHP側に変更com.my.project.valueobjects.Constantする必要があり、それですべてでした。Constant

これが将来誰かに役立つことを願っています。

于 2012-03-05T03:26:52.090 に答える