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

Flex Discussion :

amfphp - Pourquoi php reçoit-il un tableau associatif ?


Sujet :

Flex

  1. #1
    Membre du Club Avatar de MigsFR
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2008
    Messages : 54
    Points : 46
    Points
    46
    Par défaut amfphp - Pourquoi php reçoit-il un tableau associatif ?
    Bonjour,

    J'utilise amfphp dans mon projet et je me pose une question:

    Lorsque des objets sont transmis de php vers flash ils sont immédiatement "reconnus" et je peux accéder aux propriétés de mon objet en faisant: Par contre lorsque je fais l'inverse et que je transmet un objet de flash vers php je ne peux pas accéder aux propriétés en faisant: mais je suis obligé de faire Ce n'est pas "bloquant" en soit puisque je récupère mes données au final, mais je trouve ça dommage car je me suis embêté à créer une classe et au final on me revoie un tableau associatif! N'y a-t-il pas un moyen de récupérer directement un objet instance de ma classe ou au moins de convertir ce tableau en objet?

    Merci
    Migs - Quand vient l'orgueil, vient aussi le mépris, mais la sagesse est avec les humbles.

  2. #2
    Membre expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Points : 3 189
    Points
    3 189
    Par défaut
    Salut,

    il te faut utiliser le mapping d'objet!

    Coté AS3 dans ta classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [RemoteClass(alias="mon.package.MaClassePHP")]
    Coté PHP dans ta classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var $_explicitType="mon.package.MaClasseAS3";

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  3. #3
    Membre du Club Avatar de MigsFR
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2008
    Messages : 54
    Points : 46
    Points
    46
    Par défaut
    Oui ça je l'ai déjà fait, sans ça mes classes ne seraient pas mappées coté Flash... Le mapping fonctionne sauf qu'en php je reçoit un tableau associatif.
    Migs - Quand vient l'orgueil, vient aussi le mépris, mais la sagesse est avec les humbles.

  4. #4
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Bonjour,

    Citation Envoyé par MigsFR Voir le message
    en php je reçoit un tableau associatif.
    Es tu sur ?

    Que donne un var_export($myObject) côté serveur ?

  5. #5
    Membre du Club Avatar de MigsFR
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2008
    Messages : 54
    Points : 46
    Points
    46
    Par défaut
    Voici le resultat du var_export:

    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
    27
    array (
      'AddressOffice' => 
      array (
        'Country' => 'France',
        'Phone' => 1732373506,
        'IDAddress' => 1,
        'Street' => '15 Chemin des Anciens-Moulins',
        'PostCode' => '10909',
        'City' => 'Ville',
        'StateProvince' => NULL,
        '_explicitType' => 'cc.core.model.vos.Address',
      ),
      'Code' => 'C3V9P',
      'Title' => 'M',
      'Name' => 'Toto',
      'IDUser' => 1,
      'Website' => '',
      'DefaultLanguageCode' => 'fr_FR',
      'Group' => 
      array (
        'IDUserGroup' => 1,
        'Title' => 'Groupe 1',
        'Code' => 'T9I8',
        '_explicitType' => 'cc.core.model.vos.UserGroup',
      ),
      '_explicitType' => 'cc.core.model.vos.User',
    )
    Migs - Quand vient l'orgueil, vient aussi le mépris, mais la sagesse est avec les humbles.

  6. #6
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Citation Envoyé par MigsFR Voir le message
    Oui ça je l'ai déjà fait, sans ça mes classes ne seraient pas mappées coté Flash... Le mapping fonctionne sauf qu'en php je reçoit un tableau associatif.
    Pas sur...A mon avis, il s'agit tout de même d'un problème de mapping de classe vo entre php et flex. En effet, il n'existe pas vraiment de tableaux associatifs en AS3 :

    Un tableau associatif, parfois appelé hachage ou mappage, utilise des clés plutôt qu'un index numérique pour organiser des valeurs stockées. Chaque clé dans un tableau associatif est une chaîne unique qui est utilisée pour accéder à une valeur stockée. Un tableau associatif est une occurrence de la classe Object, ce qui signifie que chaque clé correspond à un nom de propriété. Les tableaux associatifs sont des collections non triées de paires de clés et de valeurs. Votre code ne doit pas s'attendre à ce que les clés d'un tel tableau se présentent dans un ordre précis.
    En gros si tu envoies un (véritable) tableau associatif de PHP vers AS3 ou un simple Object (StdClass), tu pourras théoriquement accéder à ce tableau/Object par notation pointée ou non (tab["prop"] ou tab.prop). Difficile donc d'être sur à 100% que le mapping est correct sachant que cela marche que du côté php->as3.

    As tu regardé ce lien ?

  7. #7
    Membre du Club Avatar de MigsFR
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2008
    Messages : 54
    Points : 46
    Points
    46
    Par défaut
    Bonjour,

    J'ai fini par résoudre mon problème!

    En fait j'ai été induit en erreur par un tuto sur amfphp (dont je ne retrouve plus l'url) dans lequel l'auteur accédait à toutes les propriétés de ses objets coté php via un tableau associatif... Comme de mon coté ça ne fonctionnait pas avec la syntaxe "->", j'ai jugé que c'était un comportement "normale" d'amfphp et c'est pourquoi j'ai posté ce message.

    Suite à vos remarques j'ai fais des petites recherches et j'ai constaté qu'effectivement il était possible d'accéder aux propriétés de mes objets avec la syntaxe "objet->propriete". J'ai donc commencé à chercher la faille et à force de lire les divers tutos amfphp que j'ai pu trouver sur le net, j'ai fini par mettre le doigt sur le problème!

    En fait au début de mon projet j'avais renommé le dossier "services/vo" en "services/vos" ce qui en soit n'est pas interdit sauf que j'ai oublié de mettre à jour la variable de globals.php "$voPath"! Comme ça fonctionnait très bien dans le sens php->flex je ne me suis pas posé de questions sur le moment...

    Donc voilà j'ai corrigé le path en faisant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $voPath = "services/vos/";
    Et tadaaaa, ça fonctionne!

    Merci à vous 2 pour votre aide
    Migs - Quand vient l'orgueil, vient aussi le mépris, mais la sagesse est avec les humbles.

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 13/11/2009, 15h50
  2. Problème de passage de tableau entre amfphp et php
    Par stefvat dans le forum Flash
    Réponses: 0
    Dernier message: 04/11/2009, 12h02
  3. Récupérer tableau Associatif PHP en DELPHI
    Par StarMusic dans le forum Langage
    Réponses: 7
    Dernier message: 01/12/2008, 12h53
  4. Affichage tableau associatif php
    Par TwAzO dans le forum Langage
    Réponses: 2
    Dernier message: 23/05/2008, 10h25
  5. Réponses: 1
    Dernier message: 06/06/2007, 15h02

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