Mapeamento de PHP e Flex Objects
-
06-07-2019 - |
Pergunta
Eu estou usando ZendAMF para comunicação remota.
<?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
?>
A minha pergunta é que eu tenho uma sessão de classe ActionScript e uma sessão de classe PHP, mas ainda não são mapeados. Tenho algumas dúvidas ... pode ser bobo ...
Se o nome da classe PHP arquivo para ser o mesmo nome do nome da classe, como não é necessário, mas enquanto o mapeamento não é realizar uma pontuação de valor.
Como você vai chamar os objetos mapeados dentro de seu aplicativo flex. Minha abordagem é indicado abaixo, mas não tenho certeza se a sua correta ou não.
$ servidor-> setClassMap ( "Session", "Session"); Que é uma classe PHP e Flex na função acima.
Também a minha classe de sessão PHP é dentro do diretório incluem, i deve indicar que em qualquer lugar ou a ZendAMF vai cuidar dela.
Código Flex.
var userSession:Session = new Session();
sessionHold.text = userSession.userid;
Graças.
Solução
Há algumas coisas diferentes que você precisa fazer. Geralmente é algo como adicionar o
[RemoteClass (alias = "Sessão")]
para os metadados de sua classe AS ou usando uma das funções do Zend_Amf como getASClassName () em seu objeto de PHP. Confira Wade Arnold (escritor de Zend_Amf) screencast re: mapeamento de classe. Tenho certeza que ele vai ter a sua resposta.
Outras dicas
TypeOneError está correta; você está indo para necessidade
[RemoteClass(alias="Session")]
[Bindable]
no topo de suas classes ActionScript.
Algumas outras coisas que eu determinei pode causar esse problema:
- Variáveis ??de classe deve ser pública e têm nomes idênticos
- A classe ActionScript não deve ter um construtor definido