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 :

transformer un objet en un autre d'une autre classe


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Points : 73
    Points
    73
    Par défaut transformer un objet en un autre d'une autre classe
    salut

    supposons que j ai une entité prospect qui évolue et deviens client

    quelqu un sait comment on peut gérer cela que ce soit en php ou au niveau mysql svp? utilise t on un operation de castration ?

  2. #2
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 386
    Points
    9 386
    Par défaut
    Castration, pas mal celle là.

    Niveau MySQL ce ne sont que des données brutes, donc tu en fais ce que tu veux, tu les transfères comme tu le veux et tu les associes avec ce que tu veux.

    Niveau PHP je pense que le mieux serait de regarder du côté d'un constructeur par copie, cela serait plus propre qu'un cast violent sur deux objets qui opposent peut être des éléments.
    Mais je regarderai aussi du côté du schéma de conception pour voir si un héritage ne serait pas envisageable surtout.

    « Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur. »
    « Le watchdog aboie, les tests passent »

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par transgohan Voir le message
    Castration, pas mal celle là.

    Niveau MySQL ce ne sont que des données brutes, donc tu en fais ce que tu veux, tu les transfères comme tu le veux et tu les associes avec ce que tu veux.

    Niveau PHP je pense que le mieux serait de regarder du côté d'un constructeur par copie, cela serait plus propre qu'un cast violent sur deux objets qui opposent peut être des éléments.
    Mais je regarderai aussi du côté du schéma de conception pour voir si un héritage ne serait pas envisageable surtout.
    merci à toi pour cette repose très enrichissante. bien que ça m étonnerai fortement que l'héritage soit la solution à ma question car c est en effet la source de mon pb vu que sans ce dernier , j aurai une seul classe qui regroupe tout.
    Je pense plutot faire une classe qui regroupe plusieurs rôle comme attribut bolean du genre class Personne avec, isProf,isEtudiant comme attribut

  4. #4
    Rédacteur
    Avatar de Halleck
    Homme Profil pro
    Consultant PHP
    Inscrit en
    Mars 2003
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Consultant PHP

    Informations forums :
    Inscription : Mars 2003
    Messages : 597
    Points : 878
    Points
    878
    Par défaut
    Hum, l'héritage n'est pas forcément adapté, mais un gros objet qui fait tout encore moins

    Oriente toi du côté du design pattern "State", qui répond à la problématique que tu décris
    Zend PHP Certified Engineer, Certifié Symfony2
    blog : blog.lepine.pro
    Secrétaire de l'AFUP (Association des Utilisateurs de PHP)

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par Halleck Voir le message
    Hum, l'héritage n'est pas forcément adapté, mais un gros objet qui fait tout encore moins

    Oriente toi du côté du design pattern "State", qui répond à la problématique que tu décris
    oke je vais y jeter un coup d oeil ce soir
    merci

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par oukacha Voir le message
    oke je vais y jeter un coup d œil ce soir
    merci
    Je viens de regarder , ça l air en effet de répondre à mon pb. Je vais juste prendre le temps de trouver un très bon document en français dessus car là c est que de l anglais

    mais grand merci pour ton aide précieux

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 38
    Points : 25
    Points
    25
    Par défaut
    Pourquoi tout simplement ne pas créer une méthode dans "Prospect"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    prospectToClient(){
    $client = new Client(...);
    // ton code qui fait le transfert d'attribut
    return $client;
    }

  8. #8
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par skyser Voir le message
    Pourquoi tout simplement ne pas créer une méthode dans "Prospect"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    prospectToClient(){
    $client = new Client(...);
    // ton code qui fait le transfert d'attribut
    return $client;
    }
    Bien joué, mais ajouter des attributs et méthodes existent dans client et je suis pas sûr de pouvoir gérer cela avec symfony2 mais je vais creuser la piste

Discussions similaires

  1. sélectionner une autre fois une autre image
    Par slaima15 dans le forum Interfaces Graphiques
    Réponses: 0
    Dernier message: 19/08/2010, 18h46
  2. Réponses: 5
    Dernier message: 18/09/2008, 17h20
  3. répliquer une table vers une autre d'un autre nom ?
    Par lolo92 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 07/08/2007, 23h59
  4. Réponses: 1
    Dernier message: 23/07/2007, 10h47
  5. Réponses: 11
    Dernier message: 05/10/2006, 13h20

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