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

Langage PHP Discussion :

Différence entre 2 objets


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 74
    Points : 106
    Points
    106
    Par défaut Différence entre 2 objets
    Bonjour,

    Je cherche a faire une fonction qui compare 2 objets "beans" afin de logger les différences dans un fichier ".txt".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    RedBean_OODBBean Object ( [null:private] => [properties:private] => Array ( [id] => 20 [pseudo] => damien [email] => test@gmail.com [mot_de_passe] => 0123456a [admin] => 11 [adm_membre] => 0 [adm_producteur] => 0 [adm_serie] => 0 [adm_capsule] => 0 [adm_photo] => 0 ) [__info:private] => Array ( [type] => membre [sys.id] => id [tainted] => ) [beanHelper:private] => RedBean_BeanHelperFacade Object ( ) [fetchType:private] => )
    ===========
    RedBean_OODBBean Object ( [null:private] => [properties:private] => Array ( [id] => 20 [pseudo] => damien27 [email] => test@gmail.com [mot_de_passe] => 0123456a [admin] => 11 [adm_membre] => 0 [adm_producteur] => 0 [adm_serie] => 0 [adm_capsule] => 0 [adm_photo] => 0 ) [__info:private] => Array ( [type] => membre [sys.id] => id [tainted] => 1 ) [beanHelper:private] => RedBean_BeanHelperFacade Object ( ) [fetchType:private] => )
    Je dois ainsi ressortir
    [UPDATE][Table membre][Colonne pseudo: damien -> damien27000]
    ou
    [INSERT][Table membre][Colonne pseudo: damien27000] si le premier id était à 0.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    		print_r($ta);
                    $ta2 = $ta;                
     
                    echo "<br />===========<br />";                
                    $ta2->pseudo ="nouveaupseudo";                
                    print_r($ta2);
     
                     foreach ($ta as $tab){                 
                        echo $tab.'<br/>';                      
                     }
    Pour l'instant je sais ressortir les valeus des attributs de l'objet mais pas le nom de de l'objet.

    Afin d'avance j'aimerais donc que quelqu'un m'aide a trouver la syntaxe pour afficher id, pseudo, email [etc...]

    Merci !

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    la comparaison de classes est un vaste sujet qui peut vite se transformer en cauchemar.
    Tu as un peu de lecture sur le sujet ici et si tu ne souhaites pas te taper l'écriture des comparaisons fines (propriété par priopriété) je te conseillerai de faire appel aux fonctions sur les tableaux array_...().
    Le hic (y a toujours un hic) c'est que pour que cela puisse fonctionner, il faut que tes classes puissent se comporter comme des tableaux...
    Pour obtenir ce comportement, tu devras dériver la classe ArrayObject.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 74
    Points : 106
    Points
    106
    Par défaut
    J'aurais toujours qu'un seul niveau, mais je ne comprends toujours pas comment transformer mon objet suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RedBean_OODBBean Object ( [null:private] => [properties:private] => Array ( [id] => 20 [pseudo] => damien [email] => test@gmail.com [mot_de_passe] => 0123456a [admin] => 11 [adm_membre] => 0 [adm_producteur] => 0 [adm_serie] => 0 [adm_capsule] => 0 [adm_photo] => 0 ) [__info:private] => Array ( [type] => membre [sys.id] => id [tainted] => ) [beanHelper:private] => RedBean_BeanHelperFacade Object ( ) [fetchType:private] => )
    en tableau associatif pour pouvoir l'utiliser avec un foreach.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array ( ['id'] => 20 ['pseudo'] => damien ['email'] => test@gmail.com ['mot_de_passe'] => 0123456a ['admin'] => 11 ['adm_membre'] => 0 ['adm_producteur'] => 0 ['adm_serie'] => 0 ['adm_capsule'] => 0 ['adm_photo'] => 0 )

    Pour le moment je n'arrive pas a lister id, pseudo, email [etc] donc je pense qu'avec un tableau associatif ca devrait passer.

    Après je ferais le code qui dynamiquement comparera les 2 valeurs de mes 2 tableaux (et anciens objets)

    Si quelqu'un à une piste pour me mettre sur la voie !

Discussions similaires

  1. Différence entre l'objet de l'application et l'objet en bdd
    Par Spiritkill dans le forum Persistance des données
    Réponses: 5
    Dernier message: 06/07/2013, 10h38
  2. Réponses: 11
    Dernier message: 02/09/2006, 01h38
  3. [9iR2] Différence entre une table et une table objet ?
    Par mainecoon dans le forum Oracle
    Réponses: 1
    Dernier message: 16/02/2006, 04h28
  4. Réponses: 2
    Dernier message: 01/05/2005, 14h43

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