bonjour à tous,
je cherche a développer un petit widget air qui va chercher ses infos dans un site magento.
Le site est en local et tourne avec un virtual host.
Quand j'ai fait mes tests avec AMFPHP de base tout fonctionnait.
Avec zend aucune réponse n'est renvoyée (pas même une erreur).
Mon fichier service-config :
la classe qui créé le remoteObject :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 <?xml version="1.0" encoding="UTF-8"?> <services-config> <services> <service id="amfphp-flashremoting-service" class="flex.messaging.services.RemotingService" messageTypes="flex.messaging.messages.RemotingMessage"> <destination id="amfphp"> <channels> <channel ref="my-amfphp"/> </channels> <properties> <source>*</source> </properties> </destination> </service> </services> <channels> <channel-definition id="my-amfphp" class="mx.messaging.channels.AMFChannel" > <endpoint uri="http://monsite.com/index.php/banramfserver/" class="flex.messaging.endpoints.AMFEndpoint" /> </channel-definition> </channels> </services-config>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 public function LoginProxy(data:Object=null) { super(NAME, new SimpleUserVO()); var cs:ChannelSet = new ChannelSet(); var channel:AMFChannel = new AMFChannel("my-amf", "http://bannershop.com/index.php/banramfserver"); cs.addChannel(channel); this._appProxy = facade.retrieveProxy(ApplicationProxy.NAME) as ApplicationProxy; this._loginService = new RemoteObject(); this._loginService.destination = "amfphp" this._loginService.source = "Adfab_Amf_Model_UserVO"; this._loginService.channelSet = cs; this._loginService.checkUser.addEventListener(ResultEvent.RESULT, handleSuccess); this._loginService.checkUser.addEventListener(FaultEvent.FAULT, handleFailure); this._loginService.checkUser.addEventListener(InvokeEvent.INVOKE, handleInvoke); } public function getUser(vo:SimpleUserVO):void{ this._loginService.checkUser(vo); CursorManager.setBusyCursor(); }
la classe PHP qui correspond au UserVo dans flex :
et le indexController :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 class Adfab_Amf_Model_UserVO extends Mage_Core_Model_Abstract { public $_explicitType = "com.banr.model.vo.SimpleUserVO"; public $userLogin; public $userPassword; public $userFirstName; public $userLastName; public $userID; public function checkUser(Array $vo) { if($vo['userLogin'] == "mail@mail.com" && $vo['userPassword'] == "toto"){ $this->userLogin = $vo->userLogin; $this->userPassword = $vo->userPassword; return $this; }else{ throw new Exception("Toto est un con."); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 class Adfab_Amf_IndexController extends Mage_Core_Controller_Front_Action { public function indexAction() { //Create AMF server instance $server = new Zend_Amf_Server(); //setProduction(false): return exception info $server->setProduction(false); $server->setClass("Adfab_Amf_Model_UserVO"); //$server->setClassMap("SomeTypedObjectVO", "MyCompany_MyModule_Model_SomeTypedObjectVO"); //Run the AMF server $server->handle(); //Just in case so that Magento does not pass anything beyond this point die; } }
Quand j'essaie de me logger l'appli tourne (j'ai bien un busyCursor) mais ne revoie pas de réponse.
Help...
Partager