映射PHP和Flex对象(Mapping PHP and Flex Objects)

2019-09-16 18:39发布

我使用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类会话和PHP类会议,但仍没有得到映射。 我有些怀疑......可能是愚蠢的......

如果PHP类的文件名是类名相同的名称,因为它不是必要的,但同时映射做它携带价值分数。

你会怎么称呼您的Flex应用程序中的映射对象。 我的方法是如下所示的,但不能确定其是否正确。

$服务器 - > setClassMap( “会议”, “会议”); 这是上述功能的PHP和Flex类。

另外我的PHP会话类是包括目录里面,我应该指出的任何地方或ZendAMf会照顾它。

Flex代码。

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

谢谢。

Answer 1:

还有,你需要做一些不同的事情。 通常它的像添加

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

到AS类的元数据或使用Zend_Amf的功能,如getASClassName()在你的PHP对象之一。 看看韦德阿诺德的截屏重(Zend_Amf的作家):类映射。 我敢肯定,他会得到答案。

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



Answer 2:

TypeOneError是正确的; 你将需要

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

在您的ActionScript类的顶部。

我已经确定可能导致此问题的一些其他的东西:

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


文章来源: Mapping PHP and Flex Objects