France Hardware : Forums de discussion - Découvrez notre nouveau comparateur d'offres Internet
Retrouvez les prix près de chez vous :  
Index du forum | Liste des membres | Liste des groupes | Inscription | F-A-Q | Recherche
Pseudo :    Password :     
29 511 membres enregistrés - 2 069 318 posts - 122 026 topics
Index des forums FH  | Index des forums DegroupNews
      Programmation
           Langages
                Problème bizarre - Serveur SOAP - Classe
129 connectés(record : 2799 le 29 May 2016 - 15 h 34)

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

Erel69
- Ancien Modérateur -
Fantôme
Officiel

Messages : 19 554
Inscrit le 07/11/01
Ville : Lyon
Non connecté
  Posté le 27 February 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:




Erel69
- Ancien Modérateur -
Fantôme
Officiel

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




iraysyvalo
-

Messages : 9 647
Inscrit le 19/11/02
Ville : Lyon
Non connecté
  Posté le 27 February 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 February 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
- Ancien Modérateur -
Fantôme
Officiel

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




iraysyvalo
-

Messages : 9 647
Inscrit le 19/11/02
Ville : Lyon
Non connecté
  Posté le 27 February 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 February 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
- Ancien Modérateur -
Fantôme
Officiel

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




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 February 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 February 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
- Ancien Modérateur -
Fantôme
Officiel

Messages : 19 554
Inscrit le 07/11/01
Ville : Lyon
Non connecté
  Posté le 27 February 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




Erel69
- Ancien Modérateur -
Fantôme
Officiel

Messages : 19 554
Inscrit le 07/11/01
Ville : Lyon
Non connecté
  Posté le 27 February 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é ?




Erel69
- Ancien Modérateur -
Fantôme
Officiel

Messages : 19 554
Inscrit le 07/11/01
Ville : Lyon
Non connecté
  Posté le 27 February 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.




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 February 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
- Ancien Modérateur -
Fantôme
Officiel

Messages : 19 554
Inscrit le 07/11/01
Ville : Lyon
Non connecté
  Posté le 27 February 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.




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 February 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
- Ancien Modérateur -
Fantôme
Officiel

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




Erel69
- Ancien Modérateur -
Fantôme
Officiel

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




Erel69
- Ancien Modérateur -
Fantôme
Officiel

Messages : 19 554
Inscrit le 07/11/01
Ville : Lyon
Non connecté
  Posté le 27 February 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.




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 February 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
- Ancien Modérateur -
Fantôme
Officiel

Messages : 19 554
Inscrit le 07/11/01
Ville : Lyon
Non connecté
  Posté le 27 February 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




1,2 | Suivant
Page genérée en 0.1723 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 | Deligo | Appareil photo | Commande Au Volant
Creative Commons
Message Boards and Forums Directory