France Hardware : Forums de discussion
Retrouvez les prix près de chez vous :  
Index du forum | Liste des membres | Liste des groupes | Inscription | F-A-Q | Recherche
Pseudo :    Password :     
23 592 membres enregistrés - 1 913 525 posts - 99 192 topics
Index des forums FH  | Index des forums DegroupNews
      Programmation
           Langages
                Problème bizarre - Serveur SOAP - Classe
26 connectés(record : 272 le 28 octobre 2008 - 04 h 23)

Vous devez vous connecter pour répondre au topic.
1,2 | Suivant
Problème bizarre - Serveur SOAP - Classe

Erel69
206
(¯`·.__[T3aM.L1b3rTe©]__.·´¯)

Messages : 19 449
Inscrit le 07/11/01
Ville : Lyon
Non connecté
  Posté le 27 février 2006 - 11 h 29 m 17 s
Là je ne pige pas.

Pour expliquer le problème, prenons cet exemple :

Le serveur va contenir :

    Code     
 1. <?php
 2. 
 3. class MaClass
 4. {
 5.     private $a=0;
 6.     private $b=0;
 7.     
 8.     public function __construct()
 9.     {
10.         $this->a = 10;
11.     }
12.     
13.     public function init()
14.     {
15.         $this->setB();
16.         echo 'A = '.$this->a.' - B = '.$this->B;
17.     }
18.     
19.     private function setB()
20.     {
21.         $this->b = 20;
22.     }
23.     
24.     public function affAandB()
25.     {
26.         echo 'A = '.$this->a.' - B = '.$this->B;
27.     }
28. }
29. 
30. ?>


Et dans le client je vais appeller init() et affAandB()

Le problème, c'est que dans init, B vaudra bien 20, mais dans affAandB B vaudra 0.
Pourtant, A vaudra à chaque fois 10.

En gros, une valeur modifiée (que ce soit directement ou par appel d'une fonction) dans le constructeur sera prise en compte partout. (cas de A)
Par contre, une valeur modifié ailleurs n'aura la bonne valeur que dans la fonction qui l'a modifiée (directement ou par fonction). (cas de B)

J'avoue ne pas comprendre :chepa:



Obscurité au-delà du crépuscule, pourpre au-delà du sang qui coule, enfoui dans le flot du temps, en ton haut nom, je jure fidélité à l'obscurité. Que les fous qui se dressent devant nous soient détruits, par le pouvoir que toi et moi possédons...

Erel69
206
(¯`·.__[T3aM.L1b3rTe©]__.·´¯)

Messages : 19 449
Inscrit le 07/11/01
Ville : Lyon
Non connecté
  Posté le 27 février 2006 - 14 h 38 m 39 s
Je vois que ça n'inspire pas les foules :D



Obscurité au-delà du crépuscule, pourpre au-delà du sang qui coule, enfoui dans le flot du temps, en ton haut nom, je jure fidélité à l'obscurité. Que les fous qui se dressent devant nous soient détruits, par le pouvoir que toi et moi possédons...

iraysyvalo
-

Messages : 9 647
Inscrit le 19/11/02
Ville : Lyon
Non connecté
  Posté le 27 février 2006 - 14 h 53 m 59 s
C'est assez normal, je ne vois pas ou est le probleme. Ton init() n'est pas appele lors de la construction de l'objet, ce qui n'est pas le cas de __construct() (specifique aux classes PHP, je suppose)

EDIT : Bon, oublie, j'ai manque la ligne juste apres ton code ..


Message édité 1 fois, la dernière par iraysyvalo le 27 février 2006 - 14 h 56.


Pour un ban rapide et garanti sur ce forum, argumentez vos posts, dites simplement la verite, parlez de la realite et les leche-culs d'un cote et les maniaques du ban de l'autre se feront un plaisir de vous envoyer au purgatoire aussi sec.


Erel69
206
(¯`·.__[T3aM.L1b3rTe©]__.·´¯)

Messages : 19 449
Inscrit le 07/11/01
Ville : Lyon
Non connecté
  Posté le 27 février 2006 - 14 h 57 m 52 s
Non mais tu m'as pris pour un boulet là quand même :D



Obscurité au-delà du crépuscule, pourpre au-delà du sang qui coule, enfoui dans le flot du temps, en ton haut nom, je jure fidélité à l'obscurité. Que les fous qui se dressent devant nous soient détruits, par le pouvoir que toi et moi possédons...

iraysyvalo
-

Messages : 9 647
Inscrit le 19/11/02
Ville : Lyon
Non connecté
  Posté le 27 février 2006 - 15 h 00 m 20 s


Le 27 février 2006 - 14 h 57, Erel69 a écrit :
Non mais tu m'as pris pour un boulet là quand même :D


Non non .. juste que t'a pas mis le code appelant et la ligne juste apres ton code etait trop proche, j'ai pas tilte de suite :P




Pour un ban rapide et garanti sur ce forum, argumentez vos posts, dites simplement la verite, parlez de la realite et les leche-culs d'un cote et les maniaques du ban de l'autre se feront un plaisir de vous envoyer au purgatoire aussi sec.


gege38
- Ancien Modérateur -
Chief of the
(¯`·.__[T3aM.BouL3T©]__.·´¯)
Potatoe Reloaded

Messages : 14 114
Inscrit le 05/02/03
Ville : Domène
Non connecté
  Posté le 27 février 2006 - 15 h 37 m 02 s
Quid de la persistance des objets sous PHP ?

Je ne m'y connais pas assez dans ce langage, mais en C#/Java, ca ressemble à un problème dans ce genre.

Sûr que tu t'adresses via SOAP au même objet ? Possibilité de voir la référence de l'objet ?



" Nous plaisons plus souvent dans le commerce de la vie par nos défauts que par nos qualités. "
--La Rochefoucauld


Erel69
206
(¯`·.__[T3aM.L1b3rTe©]__.·´¯)

Messages : 19 449
Inscrit le 07/11/01
Ville : Lyon
Non connecté
  Posté le 27 février 2006 - 16 h 18 m 25 s
Oui, je m'adresse au même objet vu que certaines variables conservent, elles, leur bonne valeur.



Obscurité au-delà du crépuscule, pourpre au-delà du sang qui coule, enfoui dans le flot du temps, en ton haut nom, je jure fidélité à l'obscurité. Que les fous qui se dressent devant nous soient détruits, par le pouvoir que toi et moi possédons...

gege38
- Ancien Modérateur -
Chief of the
(¯`·.__[T3aM.BouL3T©]__.·´¯)
Potatoe Reloaded

Messages : 14 114
Inscrit le 05/02/03
Ville : Domène
Non connecté
  Posté le 27 février 2006 - 16 h 26 m 02 s


Le 27 février 2006 - 16 h 18, Erel69 a écrit :
Oui, je m'adresse au même objet vu que certaines variables conservent, elles, leur bonne valeur.


Si tu parles de a, non, cela ne te garantit pas que tu t'adresses au même objet.
Maintenant, si tu as d'autres variables non affectées dans le constructeur mais initialisées ailleurs, et qu'elles ne changent pas, là, oui, tu es sur le même objet...

Il n'y a pas de possibilité en PHP de voir la référence de l'objet ?



" Nous plaisons plus souvent dans le commerce de la vie par nos défauts que par nos qualités. "
--La Rochefoucauld


gege38
- Ancien Modérateur -
Chief of the
(¯`·.__[T3aM.BouL3T©]__.·´¯)
Potatoe Reloaded

Messages : 14 114
Inscrit le 05/02/03
Ville : Domène
Non connecté
  Posté le 27 février 2006 - 16 h 32 m 18 s
Je repense, tu déclares quelles méthodes au niveau de ton annuaire ?



" Nous plaisons plus souvent dans le commerce de la vie par nos défauts que par nos qualités. "
--La Rochefoucauld


Erel69
206
(¯`·.__[T3aM.L1b3rTe©]__.·´¯)

Messages : 19 449
Inscrit le 07/11/01
Ville : Lyon
Non connecté
  Posté le 27 février 2006 - 16 h 36 m 53 s


Le 27 février 2006 - 16 h 26, gege38 a écrit :
Il n'y a pas de possibilité en PHP de voir la référence de l'objet ?


Je vais voir



Obscurité au-delà du crépuscule, pourpre au-delà du sang qui coule, enfoui dans le flot du temps, en ton haut nom, je jure fidélité à l'obscurité. Que les fous qui se dressent devant nous soient détruits, par le pouvoir que toi et moi possédons...

Erel69
206
(¯`·.__[T3aM.L1b3rTe©]__.·´¯)

Messages : 19 449
Inscrit le 07/11/01
Ville : Lyon
Non connecté
  Posté le 27 février 2006 - 16 h 37 m 03 s


Le 27 février 2006 - 16 h 32, gege38 a écrit :
Je repense, tu déclares quelles méthodes au niveau de ton annuaire ?


Gné ?



Obscurité au-delà du crépuscule, pourpre au-delà du sang qui coule, enfoui dans le flot du temps, en ton haut nom, je jure fidélité à l'obscurité. Que les fous qui se dressent devant nous soient détruits, par le pouvoir que toi et moi possédons...

Erel69
206
(¯`·.__[T3aM.L1b3rTe©]__.·´¯)

Messages : 19 449
Inscrit le 07/11/01
Ville : Lyon
Non connecté
  Posté le 27 février 2006 - 16 h 41 m 49 s
J'ai tenté un bin2hex(&$this), je sais pas si c'est bien, mais ça me sort le même résultat en tout cas.



Obscurité au-delà du crépuscule, pourpre au-delà du sang qui coule, enfoui dans le flot du temps, en ton haut nom, je jure fidélité à l'obscurité. Que les fous qui se dressent devant nous soient détruits, par le pouvoir que toi et moi possédons...

gege38
- Ancien Modérateur -
Chief of the
(¯`·.__[T3aM.BouL3T©]__.·´¯)
Potatoe Reloaded

Messages : 14 114
Inscrit le 05/02/03
Ville : Domène
Non connecté
  Posté le 27 février 2006 - 17 h 00 m 45 s


Le 27 février 2006 - 16 h 41, Erel69 a écrit :
J'ai tenté un bin2hex(&$this), je sais pas si c'est bien, mais ça me sort le même résultat en tout cas.


Cet appel, tu le fais dans la méthode ?
Si c'est le même résultat, c'est le même objet donc.

Bizarre. Dommage que je n'y connaisse pas grand chose au PHP.

Sinon, pour qu'on soit bien d'accord, tu te sers de quelle couche SOAP pour PHP ? Nu-SOAP ?
Tu déclares bien tes méthodes que tu veux RPC avec les bons paramètres ?

Je jurerais que tu appelles dans un cas une méthode distante, et dans l'autre une locale, ou un truc dans le genre...



" Nous plaisons plus souvent dans le commerce de la vie par nos défauts que par nos qualités. "
--La Rochefoucauld


Erel69
206
(¯`·.__[T3aM.L1b3rTe©]__.·´¯)

Messages : 19 449
Inscrit le 07/11/01
Ville : Lyon
Non connecté
  Posté le 27 février 2006 - 17 h 04 m 48 s
Oui, dans la méthode.

Je ne me sers pas de nu-soap, mais de la couche soap de php.

Je n'ai pas de problème avec les méthodes que j'appelle depuis le client, j'obtiens bien mon retour. C'est au niveau des méthodes internes au serveur que ça foire.



Obscurité au-delà du crépuscule, pourpre au-delà du sang qui coule, enfoui dans le flot du temps, en ton haut nom, je jure fidélité à l'obscurité. Que les fous qui se dressent devant nous soient détruits, par le pouvoir que toi et moi possédons...

gege38
- Ancien Modérateur -
Chief of the
(¯`·.__[T3aM.BouL3T©]__.·´¯)
Potatoe Reloaded

Messages : 14 114
Inscrit le 05/02/03
Ville : Domène
Non connecté
  Posté le 27 février 2006 - 17 h 09 m 17 s
Tu as essayé de debugger un peu ce bordel en regardant les requêtes lancées par ton client et reçues en réponse (sous nusoap, via la classe client : $client->[request/response/debug_str] )



" Nous plaisons plus souvent dans le commerce de la vie par nos défauts que par nos qualités. "
--La Rochefoucauld


Erel69
206
(¯`·.__[T3aM.L1b3rTe©]__.·´¯)

Messages : 19 449
Inscrit le 07/11/01
Ville : Lyon
Non connecté
  Posté le 27 février 2006 - 17 h 30 m 58 s
Oui mais ça m'apprend pas grand chose...



Obscurité au-delà du crépuscule, pourpre au-delà du sang qui coule, enfoui dans le flot du temps, en ton haut nom, je jure fidélité à l'obscurité. Que les fous qui se dressent devant nous soient détruits, par le pouvoir que toi et moi possédons...

Erel69
206
(¯`·.__[T3aM.L1b3rTe©]__.·´¯)

Messages : 19 449
Inscrit le 07/11/01
Ville : Lyon
Non connecté
  Posté le 27 février 2006 - 17 h 34 m 09 s
Tiens en tout cas il a pas l'air d'aimer l'héritage le serveur soap :(



Obscurité au-delà du crépuscule, pourpre au-delà du sang qui coule, enfoui dans le flot du temps, en ton haut nom, je jure fidélité à l'obscurité. Que les fous qui se dressent devant nous soient détruits, par le pouvoir que toi et moi possédons...

Erel69
206
(¯`·.__[T3aM.L1b3rTe©]__.·´¯)

Messages : 19 449
Inscrit le 07/11/01
Ville : Lyon
Non connecté
  Posté le 27 février 2006 - 17 h 36 m 18 s
Bon ben un petit $server->setPersistence(SOAP_PERSISTENCE_SESSION); a réglé le problème. Reste plus qu'à m'occuper de l'héritage.



Obscurité au-delà du crépuscule, pourpre au-delà du sang qui coule, enfoui dans le flot du temps, en ton haut nom, je jure fidélité à l'obscurité. Que les fous qui se dressent devant nous soient détruits, par le pouvoir que toi et moi possédons...

gege38
- Ancien Modérateur -
Chief of the
(¯`·.__[T3aM.BouL3T©]__.·´¯)
Potatoe Reloaded

Messages : 14 114
Inscrit le 05/02/03
Ville : Domène
Non connecté
  Posté le 27 février 2006 - 17 h 42 m 14 s


Le 27 février 2006 - 17 h 36, Erel69 a écrit :
Bon ben un petit $server->setPersistence(SOAP_PERSISTENCE_SESSION); a réglé le problème. Reste plus qu'à m'occuper de l'héritage.


On est bien d'accord, il s'agissait donc d'un problème de durée de vie de l'objet.
Bon à savoir, par défaut donc, les objets durent le temps de la requête...



" Nous plaisons plus souvent dans le commerce de la vie par nos défauts que par nos qualités. "
--La Rochefoucauld


Erel69
206
(¯`·.__[T3aM.L1b3rTe©]__.·´¯)

Messages : 19 449
Inscrit le 07/11/01
Ville : Lyon
Non connecté
  Posté le 27 février 2006 - 17 h 52 m 28 s
Par contre tu sais si il y a quelque chose à déclarer pour utiliser l'héritage sur le serveur soap ?

Il me sort SoapFault exception: [Client] looks like we got no XML document in... quand je rajoute une classe parent



Obscurité au-delà du crépuscule, pourpre au-delà du sang qui coule, enfoui dans le flot du temps, en ton haut nom, je jure fidélité à l'obscurité. Que les fous qui se dressent devant nous soient détruits, par le pouvoir que toi et moi possédons...

1,2 | Suivant
Page genérée en 0.4954 secondes par RahForum 2.0 | Gzip off |  Stats |  Metaforums |  RSS
© 2004 Cerbere Systems.
Prix Matériel Informatique | Informatique Lyon | Informatique Grenoble | Informatique Annecy | Informatique Marseille | Informatique Bordeaux | Forum Informatique
ADSL |Actualité ADSL | e-commerce | Commande Au Volant
Creative Commons
Message Boards and Forums Directory