Я использую 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. Мой подход указан ниже, но не уверен, правильно ли он или нет.
$ server-> setClassMap («Сессия», «Сессия»); Это класс PHP и Flex в вышеуказанной функции.
Также мой класс сеанса PHP находится внутри каталога include, я должен указать, что где-нибудь или ZendAMf позаботится об этом.
Flex Code.
var userSession:Session = new Session(); sessionHold.text = userSession.userid;
Благодарю.
Есть несколько разных вещей, которые вам нужно сделать. Обычно это что-то вроде добавления
[RemoteClass (псевдоним = "Сессия")]
к метаданным вашего класса AS или с использованием одной из функций Zend_Amf, таких как getASClassName () в вашем объекте PHP. Посмотрите на Wade Arnold's (автор Zend_Amf) screencast re: class mapping. Я уверен, что он ответит.
TypeOneError верен; вам понадобится
[RemoteClass(alias="Session")] [Bindable]
в верхней части классов ActionScript.
Несколько других вещей, которые я определил, могут вызвать эту проблему: