2012-03-04 8 views
0

Zend AMF를 사용하여 원격 객체를 Flex로 전송합니다.플렉스는 엄격히 유형이 지정된 객체 대신 Zend AMF에서 일반 객체를 비 직렬화합니다.

나는 Constant 클래스를 정의하고 getASClassName() 메서드를 만들었습니다. 그런 다음 Flex에서 Action 스크립트 클래스를 만들었습니다.

개체는 성공적으로 전송되지만 특정 개체 대신 Flex에서 일반 Objects으로 deserialize됩니다.

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'; 
    } 
} 

클래스 정의 : PHP에서 객체의

$server = new Zend_Amf_Server(); 
$server = $server->setClass("AmfService"); 
$server->setClassMap("com.my.project.valueobjects.Constant", "Constant"); 

배열

(덤프 : PHP에서 AMF를 처리 코드의

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; 
    } 

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 
     ) 

답변

0

Flex/PHP 원격 영역의 또 다른 자체 응답.

솔루션은 꽤 쉬웠습니다. PHP 쪽에서 com.my.project.valueobjects.ConstantConstant으로 변경해야했습니다.

앞으로 도움이되기를 바랍니다.