Bonjour,

Je dois développer un système de commentaire pour mon site internet. Ces commentaires peuvent être associés à deux type d'entités.

Comment rendre la classe Commentaire générique ?
Soit je crée à la main un champ ref et ref_id que j'alimente à la main.
Soit, si c'est possible, une interface (ou un trait) commune entre les objets "commentable". Mais je n'ai aucune idée de comment faire ça sous Symfony.

Merci de vos réponses.

3 réponses


Personnellement je ferais 3 classes : 1 pour chaque entité qui a besoin de commentaire et 1 classe parente qui contiendra les champs "communs". De cette manière tu peux toujours ajouter des champs propres à l'entité de base (donc tu auras autant de table de commentaire que tu auras d'entité, ici deux).
Un peu comme FOSUserBundle où tu viens étendre la classe mère pour y ajouter les champs perso.

Je trouve ça mieux après pour organiser ton code/tes requêtes. Après comme tu le dis y'a plusieurs solutions, à toi de voir.

iiNku
Auteur

Salut Jacob. Merci de ta reponse.
Je n'aime pas trop ta solution parce que conceptuellement mes entites ne sont pas fille de la classe Commentaire. Je sais pas si tu vois ce que je veux dire ici.

Tu n'as qu'à faire une relation OneTMany.