szambaux
Messages postés56Date d'inscriptionmercredi 5 septembre 2007StatutMembreDernière intervention22 juillet 2010
-
21 avril 2009 à 10:26
cs_Girou
Messages postés1203Date d'inscriptionlundi 10 mars 2003StatutMembreDernière intervention23 juillet 2009
-
21 avril 2009 à 19:54
Bonjour, j'utilise amfphp pour mes communication entre flash et php, j'aimerais optimiser un peu. J'ai une classe User en php,
class User
{
public $Id;
public $nom;
public $prenom;
public $option;
public $groupe;
public $email;
public $photo;
public $telephone;
public $gsm;
public $contact;
public $etat;
private $mysql;
public function User()
{
}
public function __set($property,$value)
{
}
public function toString()
{
return "[User->Id=".$this->Id." nom=".$this->nom." prenom=".$this->prenom." option=".$this->option." email=".$this->email." photo=".$this->photo." contact=".$this->contact." etat=".$this->etat."]";
}
}
quand je me log je me créer un User en php en variable de session et je le transfert à flash
$mySession->myUser=$myUser;
return $myUser;
dans mon flash j'ai une classe user
// nouvelle définition de ma classe User:
package vnd.utilisateur {
import vnd.web.utilisateur.ListeContact;
import vnd.utilisateur.Contact;
import flash.events.*;
import flash.net.*
import flash.display.*
// definition de ma classe User
public class User
{
public var nom:String;
public var prenom:String;
public var groupe:int;
public var email:String;
public var photo:String;
public var Id:int;
public var contact:Array;
public var etat:String;
public function User()
{
etat="horsLigne";
}
//affiche la liste de cotnact
public function afficheContact()
{
}
//fonction qui affiche le nom de la personne dans la zone de texte
public function afficheNom()
{
//nom_txt.text=prenom+" "+nom;
}
//fonction utilisée pour le trace
public function toString ( ):String
{
return "[Utilisateur prenom : " + prenom +", nom : " + nom + ", groupe : " + groupe + ", email : " + email + ", photo : " + photo +", etat : "+etat+" ]";
}
}
}
Quand je récupere mes infos via une connexion amfphp avec le code suivant:
function succes ( pRetour:* ):void
{
for ( var p in pRetour )
{
trace( p, " : " + pRetour[p] );
}
}
J'obtiens ceci:
prenom : dupont
etat : null
contact : null
Id : 1
nom : toto
gsm : 06842245224
option : null
telephone : 0325656468
photo : null
email : toto@.fr
groupe : null
et j'aimerais que cela m'instancie directement un user via ma classe user en as3
cs_Girou
Messages postés1203Date d'inscriptionlundi 10 mars 2003StatutMembreDernière intervention23 juillet 20092 21 avril 2009 à 16:52
Bonjour,
ta solution fonctionne... mais n'est pas très sécurisante (tout est en variable public dans ta class User)la solution de Orange73 me semble une meilleure approche (var newUser:User new User( pRetour[0],pRetour[1]);) -> voir transmettte en une fois les données var newUser:User new User( pRetour)
au constructeur de User les infos nécessaires et les traiter dans la fonction constructeur est plus sécurisant.
Maintenant, si l'ordre et le nombre des données reçues de amfphp risque de changer, tu as pris la solution la plus optimale.
szambaux
Messages postés56Date d'inscriptionmercredi 5 septembre 2007StatutMembreDernière intervention22 juillet 2010 21 avril 2009 à 17:20
Merci pour votre éclaircissement, pour faire un compromis entre les deux méthodes, je pourrais passer mes variable en private et faire des fonction set pour mes variables,non?
cs_Girou
Messages postés1203Date d'inscriptionlundi 10 mars 2003StatutMembreDernière intervention23 juillet 20092 21 avril 2009 à 19:54
ben wi...
sauf si, comme je le disais "l'ordre et le nombre des données reçues de amfphp risque de changer" alors l'idée des getter/setter sera un bon compromis