Mappage d'objets PHP et Flex
-
06-07-2019 - |
Question
J'utilise ZendAMF pour la communication à distance.
<?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
?>
Ma question est que j'ai une session de classe ActionScript et une session de classe PHP, mais cela ne donne toujours pas lieu à un mappage. J'ai des doutes ... peut-être stupide ...
Le nom de fichier de la classe PHP doit-il être identique à celui de la classe, car il n'est pas nécessaire mais lors du mappage, porte-t-il un score de valeur.
Comment allez-vous appeler ces objets mappés dans votre application flex? Mon approche est indiquée ci-dessous, mais je ne sais pas si c'est correct ou non.
$ server- > setClassMap ("Session", "Session"); Ce qui est une classe PHP et Flex dans la fonction ci-dessus.
De plus, ma classe de session PHP se trouve dans le répertoire include, dois-je indiquer que n'importe où ou le ZendAMf s'en occupera?
Code Flex.
var userSession:Session = new Session();
sessionHold.text = userSession.userid;
Merci.
La solution
Il y a différentes choses que vous devez faire. Habituellement, cela ressemble à l’ajout de la
[RemoteClass (alias = "session")]
aux métadonnées de votre classe AS ou en utilisant l’une des fonctions de Zend_Amf telle que getASClassName () dans votre objet PHP. Découvrez le screencast de Wade Arnold (auteur de Zend_Amf) concernant le mappage de classe. Je suis sûr qu'il aura votre réponse.
Autres conseils
TypeOneError est correct; vous allez avoir besoin
[RemoteClass(alias="Session")]
[Bindable]
en haut de vos classes ActionScript.
Quelques problèmes que j'ai déterminés peuvent être à l'origine de ce problème:
- Les variables de classe doivent être publiques et porter des noms identiques
- La classe ActionScript ne doit pas avoir de constructeur défini