IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[SOAP] Passage des types imposés en paramètres


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2004
    Messages : 318
    Points : 362
    Points
    362
    Par défaut [SOAP] Passage des types imposés en paramètres
    Alors voilà j'ai un nouveau soucis...
    J'envoie plusieurs types paramètres dans ma méthode, et j'ai besoin de les tester avant de les traiter, et cela, côté serveur. Pour qu'il y ait dans tout les cas aucun problème si le client envoie n'importe quoi.

    J'ai donc remarqué quelque chose d'assez bizarre (et oui toujours...).
    Je vais vous donner l'exemple d'un passage d'un int, l'age d'une personne. J'ai donc dans mon WSDL :
    name="age" type="xsd:int"

    A l'arrivée dans ma méthode côté serveur je teste ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $type = is_int($age);
    if ($type) $res='true';
    else $res='false';
    Dans tout les cas, que j'envoie un int, un string, un boolean, un array... Une sorte de cast s'effectue, et ca met dans la variable age un int de valeur 0. Du coup tout les tests donnent true.
    La seule possibilité est de faire passer un NULL, dans ce cas il trouve bien que la variable $age est un NULL et non pas un int.

    Le hic, c'est que j'effectue alors un autre test :
    if ($age==NULL)
    Donc en théorie, l'age est uniquement null quand on l'a précisé à l'appel de la fonction. Et ben non !
    Dès qu'il ne trouve pas un int, ce dernier test passe... Donc pour lui un int=0 c'est égal à un NULL...

    D'un côté c'est cool, quand il trouve pas de int, le dernier test correspond. Mais si on veut utiliser le paramètre age quand il est egal 0, ben dans le cul si je puis me permettre, il dit qu'il ne trouve pas de int...


    Donc ma question : Ou se fait cette espèce de cast, ce forçage de passer le bon type ? Et est-ce controlable ? Ou bien les tests doivent se faire uniquement côté client ?


    Désolé pour le pavé, j'espère que vous m'avez compris
    Merci de votre aide ! ^^

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2004
    Messages : 318
    Points : 362
    Points
    362
    Par défaut
    Bon alors en fait, à priori, côté serveur je recevrai toujours les types demandés, à moins qu'un NULL soit passé 'en force'.
    J'ai testé avec un WSDL différent pour mon client, en lui envoyant un autre type définit dans le WSDL côté serveur, et ca me sort une bonne vieille erreur indiquant une erreur côté serveur...

    Donc pas possible de tout maitriser les inputs côté serveur, le client doit pas faire n'importe quoi non plus.

    Ralala qu'est-ce qui faut pas faire pour tester...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Passer des types simples en paramètres
    Par Aleph69 dans le forum C++
    Réponses: 15
    Dernier message: 15/05/2011, 00h28
  2. [PEAR][SOAP] Support des types de données complexes
    Par elendil dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 05/12/2007, 10h58
  3. Impossible d'utiliser DISTINCT avec des types image et ntext
    Par azlinch dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 17/08/2005, 17h43
  4. Passage d'un type procédure en paramètre par défaut
    Par Floverdoz dans le forum Langage
    Réponses: 1
    Dernier message: 22/07/2005, 17h48
  5. [EJB] Passage des paramètres par référence
    Par salome dans le forum Java EE
    Réponses: 2
    Dernier message: 05/07/2005, 11h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo