Сопоставление объектов PHP и Flex - PullRequest
3 голосов
/ 23 июня 2009

Я использую 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 ("Session", "Session"); Который является классом PHP и Flex в вышеуказанной функции.

Также мой класс сеанса PHP находится внутри каталога include, если я укажу это где-нибудь или ZendAMf позаботится об этом.

Код Flex.

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

Спасибо.

Ответы [ 2 ]

4 голосов
/ 26 июня 2009

Есть несколько разных вещей, которые вам нужно сделать. Обычно это что-то вроде добавления

[RemoteClass (псевдоним = "Сессия")]

к метаданным вашего класса AS или с использованием одной из функций Zend_Amf, таких как getASClassName (), в вашем объекте PHP. Посмотрите скринкаст Уэйда Арнольда (автора Zend_Amf), посвященный сопоставлению классов. Я уверен, что он получит ваш ответ.

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

0 голосов
/ 29 июня 2009

TypeOneError верный; вам понадобится

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

в верхней части ваших классов ActionScript.

Несколько других причин, которые я определил, могут вызвать эту проблему:

  • Переменные класса должны быть открытыми и иметь одинаковые имена
  • Класс ActionScript не должен иметь определенного конструктора
...