映射PHP和Flex对象

时间:2009-06-23 12:36:29

标签: php flex zend-framework amf zend-amf

我正在使用ZendAMF进行​​远程处理。

<?php
    error_reporting(E_ALL | E_STRICT); //error reporting, not needed

    require_once "Zend/Amf/Server.php"; //the zendAMF server
    require_once "process.php";  //our test class

    $server = new Zend_Amf_Server(); //declare the server

    $server->setClass("process"); //load our test-class to the server
    $server->setClassMap("Session", "Session");
    echo($server->handle()); // needed to start the server
?>

我的问题是我有一个ActionScript类Session和一个PHP类会话,但它仍然没有被映射。我有些疑惑......可能很傻......

PHP类的文件名是否应与类名相同,因为它不是必需的,但在映射时它带有值分数。

如何在Flex应用程序中调用这些映射对象。我的方法如下所示,但不确定其是否正确。

$ server-&gt; setClassMap(“Session”,“Session”); 这是上述函数中的PHP和Flex类。

我的PHP会话类也在include目录中,如果我在任何地方指示或者ZendAMf会处理它。

Flex Code。

var userSession:Session = new Session();
sessionHold.text = userSession.userid; 

感谢。

2 个答案:

答案 0 :(得分:4)

您需要做一些不同的事情。通常它就像添加

[RemoteClass(别名= “会话”)]

到您的AS类的元数据或使用Zend_Amf的函数之一,如PHP对象中的getASClassName()。查看Wade Arnold(Zend_Amf的作者)截屏视频:类映射。我相信他会得到你的回答。

http://www.wadearnold.com/tutorials/zend/classmap/

答案 1 :(得分:0)

TypeOneError是正确的;你需要

[RemoteClass(alias="Session")]
[Bindable]

位于ActionScript类的顶部。

我确定的其他一些事情可能导致此问题:

  • 类变量必须是公共的且具有相同的名称
  • ActionScript类不应具有已定义的构造函数