实例化AMF PHP类无法正常工作

时间:2010-07-09 12:37:57

标签: php flash class amfphp

我正在尝试使用AMF PHP将变量传递给flash文件,到目前为止我看不出我的代码有什么问题,但是我对创建类的经验很少,所以在这里,这是我的代码,< / p>

的index.php:

<?php
include "amfphp/services/flashMe.php";

$session = true;

if ($session == true) {
 $uid = '12345';


  $thing = new flashMe;
  $thing->push($uid);

} else {

 //login

}

?>

flashMe.php:

<?php
class flashMe {

 public function __construct() {

 }

 public function push($one)
 {   
    return $one;//sends the uid to the flash file?
 }

}
?>

Flash正在寻找flashMe类和该类中的push方法,但是当我运行它时,我的flash文件中仍然存在空变量,这段代码有问题吗?

提前Thanx!

3 个答案:

答案 0 :(得分:2)

您的index.php文件是不必要的。

您的第二个文件不完整。以下是他们的“hello world”类文件的文档示例:

<?php
class HelloWorld
{
    function HelloWorld()
    {
        $this->methodTable = array
        (
            "say" => array
            (
                "access" => "remote",
                "description" => "Pings back a message"
            )
        );
    }

    function say($sMessage)
    {
        return 'You said: ' . $sMessage;
    }
}
?>

此文件应保存为“HelloWorld”,以匹配您在php文件中命名的“类HelloWorld”(您使用FlashMe执行此部分)。

Flash片段文档中的示例文件(在actionscript中)位于:

import mx.remoting.*;
import mx.rpc.*;
import mx.remoting.debug.NetDebug;

var gatewayUrl:String = "http://localhost/flashservices/gateway.php"

NetDebug.initialize();
var _service:Service = new Service(gatewayUrl, null, 'HelloWorld', null , null);
var pc:PendingCall = _service.say("Hello world!");
pc.responder = new RelayResponder(this, "handleResult", "handleError");

function handleResult(re:ResultEvent)
{
    trace('The result is: ' + re.result);
}

function handleError(fe:FaultEvent)
{
    trace('There has been an error');
}

网关网址应该转到您的服务可以到达的任何地方。我敢肯定,如果你尝试一些,你会找到合适的。 amfphp的优点在于,它允许您在尝试在网关中实现服务之前测试服务(如果您在浏览器中访问URL)。

我对AMFPHP也很陌生,但我发现the docs非常有用。如果您需要有关课程的更多帮助,可以在PHP docs page上找到更多信息。

答案 1 :(得分:0)

您在new flashMe

之后错过了括号

$thing = new flashMe(); $thing->push($uid);

答案 2 :(得分:0)

Amfphp或Zend AMF仅允许您在网关公开的远程类上调用公共方法。您的示例不是类,因此无法调用远程方法。这看起来更像是你用http帖子做的事情。

http://framework.zend.com/manual/en/zend.amf.server.html