Tp 6 php namespaces controllers blogpoo
Thème :
Junior
1 vues ·10/12 leçons

09. CommentController : Gestion des Interactions

Le CommentController est un excellent exemple de contrôleur spécialisé.

1. Responsabilité Unique

Plutôt que de mettre la logique des commentaires dans le ArticleController, nous avons créé un contrôleur séparé. Cela respecte le principe S.O.L.I.D de responsabilité unique.

2. Allusion à Laravel : Les Relations

Dans Laravel, on ajouterait un commentaire via $article->comments()->create($data). Ici, nous faisons :

$comment = new Comment(content: $content, article_id: $article_id, user_id: $user_id);
$comment->save();

C’est la base de ce que font les ORM (Object-Relational Mapping) comme Eloquent dans Laravel.

3. Sécurité de suppression

Une règle métier importante est implémentée ici : Un utilisateur ne peut supprimer que ses propres commentaires, sauf s’il est admin.

if (!$comment->belongsTo((int) $_SESSION['auth']['id'], $isAdmin)) {
    exit('Accès refusé');
}

Dans Laravel, nous utiliserions une Policy pour faire cela. Notre méthode belongsTo() dans le Modèle est l’embryon d’une Policy Laravel.

4. Pourquoi c’est mieux ?

  • Clarté : Le code de gestion des commentaires est isolé.
  • Maintenance : Si vous voulez ajouter une modération des commentaires (approuver/refuser), vous savez exactement quel fichier modifier.

Prêt à passer à la suite ?

Vous avez terminé cette leçon sur 09. CommentController : Gestion des Interactions. Continuez votre apprentissage avec la prochaine leçon ou explorez d'autres formations.