Bonjour,

Je développe actuellement mon premier projet en PHP Objet et je me pose une question.

J'ai une classe Article, une classe Commentaires, une classe Utilisateur, ....

La classe Article simplifiée se présente sous la forme :

class Article{
    $id;
    $titre;
    $contenu;

}

La classe Commentaire simplifiée se présente sous la forme :

class Commentaire{
    $id;
    $contenu;
}

Vous l'aurez compris, un Article est composé de commentaires;

Que dois-je stocker dans ma classe Article pour faire la liaison avec les commentaires? Je vois deux solution :

  • un attribut $commentaires qui serait un Array d'objets Commentaire
  • un attribut $commentaires_id qui serait un Array des id de chacun des commentaires.

Bien sûr les 2 solutions peuvent marcher, mais quelle est la plus judicieuse? Si je stoque les objets commentaire, cela facilite l'utilisation de ma class Article, mais je dois créer pour chaque article, les objets commentaires correspondant, et donc faire les requêtes SQL correspondant, sachant que je n'aurai pas besoin d'afficher les commentaires à chaque fois que j'utiliserai mon objet Article.

1 réponse


balo
Réponse acceptée

Une solution consiste à passer un paramètre au constructeur permettant de dire si tu auras besoin des commentaires ou non (puisque tu es le seul à le savoir à un moment donné).

Exemple :

class Commentaire{
    $id;
    $contenu;
    $commentaires = array();
    public __construct($load=false) {
        if ($load) $this->commentaires = // je charge mes commentaires en objet
    }
}