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 :

[POO] parent et mutateurs


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 69
    Par défaut [POO] parent et mutateurs
    Bonjour, ca fait un bout de temps que j'entends parlé d'objets mais ce n'est que maintenant que je pratique la méthode. Voilà le topo.

    soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    class bObj {
      public $_bElements = array();
    }
     
    class bObjItem extends bObj {
      parent::$_bElements = addItem();
    }
     
    new bObjItem;
    new bObjItem;...
    En gros je veux créer autant de fils bObjItem et qu'ensuite ça remplisse le tableau $_bElements du parent. Ainsi en accédant au tableau on peut voir tous les fils créer. J'ai essayé quelques méthodes mais en vain pour l'instant. Peut etre pourriez vous m'aider?

  2. #2
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Tu mélanges des principes que sont l'héritages et les collections d'objets, je pense que dans ton cas le plus simple est de faire comme suit :
    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
     
    class bObjList {
      public $_list_of_bObj = new array();
      public function addItem($bObjItem);
    }
     
    class bObj {
     //properties and methods.
    }
    $collection = new bObjList; 
    $obj1 = new bObj;
    $obj2 = new bObj;
    $collection->addItem($obj1);
    $collection->addItem($obj2);
    $collection->addItem(new bObj);

  3. #3
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 69
    Par défaut
    Humm, ouais ton modèle a l'air de remplir mon objectif.
    Merci!

  4. #4
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 69
    Par défaut
    Je continue le post car j'ai encore beaucoup de lacunes, j'en suis là:
    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
     
    <?php
    include_once 'HTML/QuickForm.php';
     
    class bObjList {
      public $_list_of_bObj = array();
      //  public $_list_of_bObj = new array(); génére une erreur
      public function addItem($bObjItem) {
        array_push($this->_list_of_bObj, HTML_QuickForm::addElement('select'));
      }
    }
     
    class bObj {
     //properties and methods.
    }
     
    $collection = new bObjList; 
    $obj1 = new bObj;
    $obj2 = new bObj;
    $collection->addItem($obj1);
    $collection->addItem($obj2);
    $collection->addItem(new bObj);
    ?>

  5. #5
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 69
    Par défaut
    En transformant:
    Citation Envoyé par Bownobo Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    class bObjList {
      public $_list_of_bObj = array();
      //  public $_list_of_bObj = new array(); génére une erreur
      public function addItem($bObjItem) {
        array_push($this->_list_of_bObj, HTML_QuickForm::addElement('select'));
      }
    }
    Par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    class bObjList extends HTML_QuickForm {
      public $_list_of_bObj = array();
      //  public $_list_of_bObj = new array(); génére une erreur
      public function addItem($bObjItem) {
        array_push($this->_list_of_bObj, $this->addElement('select'));
      }
    }
    J'arrive a peupler mon tableau mais je ne trouve pas ça très beau!

    N'y a t-il pas un moyen de créer un HTML_QuickForm::addElement sans instancier la classe?

  6. #6
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Ce ne serait pas plutot ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     public function addItem($bObjItem) {
        array_push($this->_list_of_bObj, $bObjItem);
      }

  7. #7
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    D'autres parts je pense que les classes bObjList et HTML_QUIckForm sont différentes.
    bObjList ne doit pas hérité de HTML_QUIckForm mais plutot l'avoir comme membre privé.

    bObjList manipule HTML_QUICKFORM mais n'en hérite pas. Ces deux objets sont voués à des utilisations différentes.

  8. #8
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 69
    Par défaut
    Humhum tu as une bien meilleure vision objet que moi c'est mieux comme ca.
    Merci!

  9. #9
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    C'est la faute à .Net !

  10. #10
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 69
    Par défaut
    Citation Envoyé par ThomasR Voir le message
    bObjList ne doit pas hérité de HTML_QUIckForm mais plutot l'avoir comme membre privé.
    Sans vouloir abuser comment on fait un membre privé?

  11. #11
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    class bObjList {
      //Members
      public $_list_of_bObj = array();
      private $qf; 
      // Methods
      public function __construct(){
        $qf = new Html_QuickForm();
      }
      public function addItem($bObjItem) {
         array_push($this->_list_of_bObj, $this->qf->addElement('select'));
      }
    }
    Désolé pour les éditions successives de ce messagE.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/04/2007, 15h51
  2. [POO] Appeler une méthode redéfinie de la classe parente
    Par Djakisback dans le forum Langage
    Réponses: 5
    Dernier message: 04/08/2006, 23h56
  3. Réponses: 7
    Dernier message: 16/06/2006, 12h09
  4. [POO] Héritage multiple Parent
    Par djshaker dans le forum Langage
    Réponses: 15
    Dernier message: 15/03/2006, 18h35
  5. [POO]héritage du constructeur de la classe parente
    Par new_wave dans le forum Langage
    Réponses: 7
    Dernier message: 10/03/2006, 15h25

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