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

MVC PHP Discussion :

Les classes / modèles


Sujet :

MVC PHP

  1. #1
    Membre confirmé Avatar de ToxiK
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 152
    Par défaut Les classes / modèles
    Bonjour,

    j'aimerais avoir un peu d'information sur les classes.

    Par exemple j'ai trois tables

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    utilisateur
    -id
    -nom
     
    groupe
    -id
    -nom
     
    appartient
    -id_util
    -id_groupe
    Comme faire pour pouvoir faire un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $appartient->utilisateur->nom

  2. #2
    Membre chevronné Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Par défaut

  3. #3
    Membre confirmé Avatar de ToxiK
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 152
    Par défaut
    C'est justement ce que je cherche mais pourrais-tu me dire lequel ?

  4. #4
    Membre chevronné Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488

  5. #5
    Membre confirmé Avatar de ToxiK
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 152
    Par défaut
    Je te remercie pour le lien mais je l'avais déjà lu et ça ne répond pas à ma question.

    Voilà ce que j'aurais fais en utilisant le système de classes de PHP

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    fonction getElement($id) {
     
    //requette sql, je recupere les valeur pour $id_util et $id_group
     
    $obj = new Appartient();
     
    $obj->utilisateur = Utilisateur::getElement($id_util);
     
    $obj->groupe = Groupe::getElement($id_group);
     
    return $obj;
     
    }
    comme ça j'ai un objet qui contient d'autre objet.

  6. #6
    Membre chevronné Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Par défaut
    Ah oui tu veux lier tes enregistrements dans un classe... mais la classe Appartient est liée à une table ou pas?

    Si oui regarde la doc Zend_Db_Table
    et la methode getParent()

    Si t'as du mal n'hésite pas

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    118
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 118
    Par défaut
    Toxik,

    Si tu veux avoir un objet d'un tuple il faut utiliser Zend_Db_table_Row

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    class core_Model_DbTable_Utilisateur extends Zend_Db_Table {
     
        protected $_primary = 'id';
        protected $_name = 'Utilisateur';
     
        protected $_rowClass = 'core_Model_DbTable_UtilisateurRow';
        // va correspondre à un tuple
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    class core_Model_DbTable_UtilisateurRow extends Zend_Db_Table {
     
    }
    Et Pour l'utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $utilisateurS = new core_Model_DbTable_Utilisateur();
     
    // creation
    $utilisateur = $utilisateurS->createRow();
    ...
     
    // select avec fechrow() en output
    $nom = $utilisateur->nom;
    En gros, voici le principe
    doc ZF ou livre de Christophe Haro (ZF programmation par composant p180)

  8. #8
    Membre confirmé Avatar de ToxiK
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 152
    Par défaut
    Après avoir avancer tous les autres points, je revoici confronter à ce problème avec les models.

    J'ai du mal à saisir les notions de jointure avec $_rowClass.

    Concrètement j'ai 2 tables

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    T1
    - id
    - lien_id_T2
     
    T2
    -id
    -nom
    -prenom
    Je veux faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $t1 = new T1();
    $t1->fetchall();
     
    foreach($t1 as $t1_enreg) :
     
    	$liste_noms .= $t1_enreg->nom.',';
     
    	$liste_prenoms .= $t1_enreg->prenom.',';
     
    endforeach;
     
    $this->view->liste_noms = $liste_noms;
    $this->view->liste_prenoms = $liste_prenoms;
    Comment faire ma jointure entre les deux tables ?

  9. #9
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    Perso j'ai pris le parti de construire les requêtes SQL natives moi-même dès que ça dépasse le simple CRUD sur une seule table. C'est beaucoup plus rapide à programmer et au moins je suis sûr de ma requête.

    Exemple :
    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
        /**
         * Retourne la liste de tous les établissements
         */
        public function listeEtablissements()
        {
            $sql = "
                SELECT e.etb_id, e.etb_nom, e.etb_adresse, e.etb_code_postal, e.etb_telephone, 
                    c.cmn_nom,
                    te.te_libelle 
                FROM te_etablissement_etb e 
                INNER JOIN tr_commune_cmn c ON c.cmn_id = e.etb_id_commune 
                INNER JOIN tr_type_etablissement_te te ON te.te_id = e.etb_id_type_etablissement
            ";
     
            return $this->_db->fetchAll($sql);
        }
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  10. #10
    Membre confirmé Avatar de ToxiK
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 152
    Par défaut
    D'accord merci, je vais commencer comme ça et je verrais par la suite.

    Du coup si je veux utiliser des objets, il faut que je crée mes classes et dans ces classes que j'utilise mes modèles ?

  11. #11
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    Je crée un fichier modèle par table utilisée et je mets dedans les fonctions d'accès aux données, telle que celle que j'ai donnée dans mon message précédent.

    Ça peut aussi être une fonction plus complexe. Par exemple, ma table des étudiants héritant de celle des candidats qui hérite de celle des utilisateurs qui hérite de celle des personnes, pour insérer un étudiant, je traite de tableau de données passé en paramètre à la fonction qui effectue les requêtes nécessaires, comme pourrait le faire un trigger sur la table des étudiants.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  12. #12
    Membre confirmé Avatar de ToxiK
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 152
    Par défaut
    Hum ok, mais du coup tu travailles avec des enregistrements et pas sur des objets, si ?

  13. #13
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Pour lier les Objets et leur enregistrement en base de données de manière synchrone, il faut utiliser le design pattern Active Record: http://martinfowler.com/eaaCatalog/activeRecord.html

    Tu peux mettre du Lazy load si tu as une contrainte de temps d'accès et de mémoire également.

  14. #14
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    Je ne travaille pas avec du mapping à la Hibernate en Java si c'est ça la question. J'ai goûté et j'ai pas du tout aimé ! Voir mes messages dans les forums Seam et Hibernate.

    Avec Zend_Db c'est un peu pareil, j'ai essayé les méthodes préconisées par Zend pour construire les requête et laisser ZF la rédiger mais dès que la requête devient un peu complexe, avec des jointures multiples, externes, plusieurs conditions dans le where, des sous-requêtes et autres joyeusetés, je fais 1000 fois plus vite à rédiger la requête en SQL, la tester dans phpMyAdmin et la copier coller dans une fonction de mon modèle.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  15. #15
    Membre confirmé Avatar de ToxiK
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 152
    Par défaut
    Merci beaucoup, je vais faire de même pour mes requêtes complexe.

  16. #16
    Membre confirmé Avatar de ToxiK
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 152
    Par défaut
    Finalement je ne suis toujours pas satisfait de la façon dont j'utilise les classes et les models avec ZF.

    Prenons un exemple simple 2 tables:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Terrain
    - id
    - nom
    - description
     
    Partie
    -id
    -nom
    -date
    -terrain (Terrain.id)
    Je veux pouvoir récupérer un objet Partie ou une collection d'objet Partie, qui elle contient un objet Terrain.

    Du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $lesParties = Parties::getElements();
     
    boucle
     
         echo $lesParties[$i]->terrain->nom;
     
    fin boucle

  17. #17
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par ToxiK Voir le message
    Prenons un exemple simple 2 tables:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Terrain
    - id
    - nom
    - description
     
    Partie
    -id
    -nom
    -date
    -terrain (Terrain.id)
    Donc une partie est contenue dans un terrain et un terrain peut comprendre plusieurs parties.

    Est-ce que je dois utiliser je veux pouvoir récupérer
    Euh... pas tout compris là !

    je veux pouvoir récupérer un objet Partie ou une collection d'objet Partie, qui elle contient un objet Terrain.
    D'après ta table, la partie contient une référence du terrain qui la contient, pas l'inverse !
    Et il ne semble pas s'agir d'un héritage puisque la partie a son propre identifiant.

    Du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $lesParties = Parties::getElements();
     
    boucle
     
         echo $lesParties[$i]->terrain->nom;
     
    fin boucle
    Que fait la fonction getElements ?
    Si elle se contente d'un fetchAll sur la table Partie, tu aura seulement l'identifiant du terrain.
    Si tu veux avoir le nom du terrain en plus des attributs de la partie, ce que je ferais est ce genre de fonction dans le modèle Partie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public function listePartiesAvecLeurTerrain()
    {
        $sql = "
            SELECT p.id AS idPartie,
                p.nom AS nomPartie,
                p.date AS datePartie,
                t.id AS idTerrain,
                t.nom AS nomTerrain,
                t.description AS descriptionTerrain
            FROM partie p
            INNER JOIN terrain t ON t.id = p.terrain
        ";
        return $this->_db->fetchAll($sql);
    }
    Avec ça tu récupères toutes les infos dont tu as besoin en une seule requête et en appelant un seul modèle.

    J'ai dû passer environ 2 minutes à écrire ce code alors qu'avec les méthodes de l'ensemble Zend_Db, le temps que je trouve la bonne syntaxe, j'y aurais mis au moins le triple de temps je pense.

    Si tu veux un terrain avec toutes ses parties, tu fais le même genre de requête dans le modèle terrain.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  18. #18
    Membre confirmé Avatar de ToxiK
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 152
    Par défaut
    Merci pour ta réponse,

    - une partie contient un terrain, pas l'inverse

    - je m'étais trompé dans ma phrase (je l'ai écrite en plusieurs fois j'ai été coupé ^^)

    - les méthode : Partie::getElements() et Terrain::getElement($parametre)

    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
    28
    29
    30
    31
    32
    static function getElements() {
     
    $req = 'SELECT * FROM parties';
     
    .....
     
    boucle
     
        $unePartie = new Partie();
        $unePartie->id = $enreg->id;
        $unePartie->nom = $enreg->nom;
     
        $unTerrain = Terrain:getElement($enreg->terrain);
     
        unePartie->terrain = unTerrain;
     
    fin boucle
     
    }
     
    static function getElement($id) {
     
        $req = 'SELECT * FROM terrain WHERE id =' . $id;
     
        .....
     
         $unTerrain = new Terran();
         $unTerrain->id = $enreg->id;
         $unTerrain->nom = $enreg->nom;
     
         return $unTerrain;
    }
    J'aimerais pouvoir travailler avec des objets, mais quand même utiliser les méthodes d'accès aux données de ZF.

  19. #19
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par ToxiK Voir le message
    - les méthode : Partie::getElements() et Terrain::getElement($parametre)

    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
    28
    29
    30
    static function getElements() {
     
    $req = 'SELECT * FROM parties';
     
    boucle
     
        $unePartie = new Partie();
        $unePartie->id = $enreg->id;
        $unePartie->nom = $enreg->nom;
     
        $unTerrain = Terrain:getElement($enreg->terrain);
     
        unePartie->terrain = unTerrain;
     
    fin boucle
     
    }
     
    static function getElement($id) {
     
        $req = 'SELECT * FROM terrain WHERE id =' . $id;
     
        .....
     
         $unTerrain = new Terran();
         $unTerrain->id = $enreg->id;
         $unTerrain->nom = $enreg->nom;
     
         return $unTerrain;
    }
    Pas tout compris... notamment ce qu'est $enreg mais pas grave.
    J'aimerais pouvoir travailler avec des objets, mais quand même utiliser les méthodes d'accès aux données de ZF.
    Regarde plus en détail la doc de ZF. On peut définir dans les propriétés d'une classe Zend_DbTable_Abstract des choses quant aux clés étrangères. Après je ne sais pas comment ça s'utilise dans les requêtes à la mode ZF parce que j'ai vite abandonné vu que je trouvais ça inutilement compliqué par rapport aux requêtes SQL natives que je maîtrise bien.

    Regarde aussi du côté de Doctrine mais si c'est du genre Hibernate, très peu pour moi !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  20. #20
    Membre chevronné Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Par défaut
    La façon dont tu procede pour récupérer des enregistrement n'est pas bonne car à chaque passage dans ta boucle tu fait une requete pour avoir un/des enregistrements...... ça va te faire ramer la base de donnée si tu as bcp de lignes!

    Déjà pour bien comprendre les possibilités de base du ZF lit ceci:

    http://www.developpez.net/forums/d95...s/#post5392887

    Soit tu utilise basiquement le ZF mais ça crée un multirequetage donc gourmand en ressources.
    Soit tu utilise une requete simple avec jointure en abandonnant les classes mais moins gourmand en ressources
    Soit tu crée une methode qui fait une premiere requete fetchAll() en demandant les enregistrements parent, puis une deuxieme fetchAll() qui demande les enregistrements enfants et tu range ça proprement dans un tableau..... comme ça tout tes enregistrements sont sous forme d'objet mais dans un tableau...

    je vois pas d'autres solutions

Discussions similaires

  1. Réponses: 14
    Dernier message: 21/12/2014, 23h20
  2. Réponses: 2
    Dernier message: 05/07/2010, 11h13
  3. Réponses: 6
    Dernier message: 05/11/2008, 13h06
  4. Réponses: 31
    Dernier message: 30/03/2006, 16h57
  5. Les classes amies en Delphi
    Par Bruno75 dans le forum Langage
    Réponses: 3
    Dernier message: 02/09/2003, 19h34

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