Fork me on GitHub




« 1 (2)


Re: Héritage et jointure de table (BD)
Régulier
Inscrit: 06/01/2006 23:55
Messages: 379
Citation :

ppcm a écrit:
Je code avec mes petites mimines, pas de générateur. Donc, on fait ce que l'on veut.
Ton exxplication correspond à ce que j'ai fait. A un détail près, dans le handler de la classe A, il faut quand même surcharger les méthodes utiles, car la variable 'table' doit être initialiser avec le nom de la bonne table à modifier avec d'appeler parent::...

En fait, je cherchais une manière plus élégante de le réaliser...

Un grand merci pour ton aide en tout cas.

euh toujours pas compris ton probleme...

Tu as code le nom de ta table dans une variable ou plutot une propriete de ton objet? ce qui evite de faire x appel a db->prefix('nom table') c'est ca?
Ben essayes de le passer dans une variable de classe et non une propriete de la methode a la place. Definis ton nom de table comme cela :
class classA
{
    private static 
$nomtable 'tableA';
    
    function 
affiche()
    {
        echo 
self::$nomtable.'<br />';
    }
    
}


class 
classB extends classA
{
    private static 
$nomtable 'tableB';
    function 
affiche()
    {
        echo 
self::$nomtable.'<br />';
        
parent::affiche();
    }
}


$A = new classA;
$B = new classB;
$A->affiche();
$B->affiche();


ca devrait marcher non?

EDIT : je precise je suis en php 5...

Posté le : 22/12/2006 11:44
Partager Twitter Partagez cette article sur GG+
Re: Héritage et jointure de table (BD)
Régulier
Inscrit: 06/01/2006 23:55
Messages: 379
EDIT : dsl j'avais mal compris l'intervention d'Herve a ma premiere lecture donc ma reponse n'a plus lieu d'etre

Posté le : 22/12/2006 11:50
Partager Twitter Partagez cette article sur GG+
Re: Héritage et jointure de table (BD)
Aspirant
Inscrit: 15/01/2005 14:09
Messages: 24
C'est une solution aussi, mais ceci est utile seleument si nous avons des relations n-n, hors dans mon cas (et dans le cas de l'héritage en général) nous avons une relation 1-1.
Ne trouvant pas de solution jolie et propre (mais surtout élégante), j'ai opté pour la surcharge de quasiement toutes les méthodes de XoopsObject et de XoopsPersistableObjectHandler, pour qu'en fonction de l'appartenance de la variable à la table mère ou à la table fille, ce soit bien rangé/restitué comme il faut...

Donc pour résumé (et si cela peut aider):
Héritage avec extension de la bd (sans copie de données)
- Créer une classe mère en surchargeant les méthodes de sauvegarde et de restitution des valeurs de sa propre table
- Créer une classe fille héritant de la dite-classe mère en surchargeant les méthodes de sauvegarde et de restitution des valeurs de sa propre table, pour les valeurs de lui appartenant pas, appeler les méthodes de la classe parente

Dans la pratique, j'ai quasiement tout fait dans la classe mère avec des variables temporaires (pour la table de référence et pour la liste des variables), du coup, dans les classes filles, je n'ai pas grand chose à faire, sauf le vraiment spécifique...

Merci à tous pour votre aide


:xfsuper:

Posté le : 04/01/2007 14:31

Don't worry, be happy
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant
« 1 (2)



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

119 Personne(s) en ligne (108 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 119 | Plus ...