Bonjour,
comme annoncé dans le sujet du topic, j'ai un problème avec mes VO. Pour être plus clair ce sont mes classes en Flex et en Php qui sont équivalentes, et qui sont mappées les unes sur les autres lors de chargement de données (SELECT ou INSERT en DB par exemple), pour faciliter la transition des données entre Flex et Php.
Jusqu'à maintenant, tout fonctionnait bien, c'est-à-dire que je pouvais faire toutes les requêtes que je voulais, sans problème, avec mes VO etc..
Par contre depuis quelques jours j'ai un soucis : j'ai crée une nouvelle VO, (que l'on appelera VOTest) , j'ai donc les fichiers :
- VOTest.php côté server
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 class VOTest{ public $attribut1; public $attribut2; ... }
- VOTest.as côté Flex
et mon service TestService.php
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 package org.VO { [RemoteClass: alias='VOTest'] [Bindable] public class VOTest(attribut1:int, attribut2:int, ...) { this.attribut1 = attribut1; this.attribut2 = attribut2; ... } public var attribut1:int; public var attribut2:int; ... }
Dorénavant, lorsque je fais dans ma fonction php quelque chose du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 $query = "SELECT * FROM ..." ... $tmp = new VOTest(); $tmp->attribut1 = $result->attribut1; $tmp->attribut2 = $result->attribut2; ... return $tmp;
j'ai une erreur à l'execution :
Argument Error in org.vo::VOTest() : Expected x, got 0
Le problème est que je n'instancie pas directement une VOTest du côté flex, et la ligne new VOTest() dans mon Testservice.php fais naturellement référence à ma classe Php.
Le problème se résoud lorsque j'enlève la ligne
dans mon VOTest.as : les classes ne sont plus bindées.. et cela marche tout aussi bien (quoique je pense que j'aurai des soucis par la suite si je continue comme ça, et je perds toutes les raisons d'utiliser Zend_Amf ...)
Code : Sélectionner tout - Visualiser dans une fenêtre à part [RemoteClass: alias='VOTest']
D'une certaine manière je comprend cette erreur, car le constructeur de VOTest.as demande des arguments...
Le problème c'est qu'en sortie du service Php je retourne bien une classe avec les attributs remplis... et ce qui m'étonne le plus c'est que tous mes autres services/VO sont faits de la même manière et marchent très bien...
j'ai fait le test également pour une nouvelle VO et un nouveau service encore une fois, et j'ai toujours l'erreur ici aussi
Je ne comprend pas ce qui se passe.
Est-ce que quelqu'un pourrait me venir en aide svp?
Merci d'avance![]()
Partager