Создание класса AMF PHP не работает - PullRequest
0 голосов
/ 09 июля 2010

Я пытаюсь использовать AMF PHP для передачи переменных во флэш-файл, поэтому пока я не вижу ничего плохого в своем коде, но у меня очень мало опыта в создании классов, так что здесь все в порядке, вот мой код,

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 в этом классе, но я продолжаю получатьнулевые переменные в моем флеш-файле, когда я его запускаю, что-то не так с этим кодом?

Заранее спасибо!

Ответы [ 3 ]

2 голосов
/ 19 июля 2010

Ваш файл 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», соответствующий «классу HelloWorld», который вы назвали в файле php (вы сделалиэта часть прямо с 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');
}

URL шлюза должен указывать везде, где могут находиться ваши службыдостиг.Я уверен, что если вы попробуете несколько, вы найдете правильный.Отличительной особенностью amfphp является то, что он позволяет вам также протестировать свои сервисы, прежде чем пытаться внедрить их в шлюз (если вы перейдете по URL в вашем браузере).

Я довольно новичок в AMFPHP, так какхорошо, но я нашел документы , которые чрезвычайно полезны.Если вам нужна дополнительная помощь по занятиям, вы можете найти дополнительную информацию на странице документации PHP .

0 голосов
/ 12 июля 2010

Amfphp или Zend AMF позволяют вам вызывать открытые методы только для удаленного класса, доступного вашему шлюзу. Ваш пример не является классом и, следовательно, удаленный метод не может быть вызван. Это больше похоже на то, что вы сделали бы с постом http.

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

0 голосов
/ 09 июля 2010

Вы пропустили скобки после new flashMe

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

...