ADR : comment faire simple quand on peut se compliquer la vie
Le pattern ADR expliqué avec Ironie : Parce qu'être snob en PHP, c'est un art.
Découvrez comment MVC structure votre code pour éviter le chaos, tout en cachant peut-être un peu le désordre.
On parle d'un truc qu'on vous répète sans cesse en entretien technique et que tout le monde prétend maîtriser : le MVC. Parce que ouais, dans le développement backend, t’as beau être bon, si tu ne fais pas de MVC, t’es suspecté d’être un imposteur ou pire : un développeur JavaScript !
Alors MVC, pour les trois du fond qui codent encore comme en 2005, ça veut dire Model-View-Controller, ou comment diviser proprement le bordel que tu vas finir par créer de toute façon.
L’idée, elle est simple sur papier : chacun fait ce qu’il sait faire et arrête de venir embêter les autres.
Model : c’est le sérieux de l’équipe, le gars qui bosse vraiment. Il parle à la base de données, récupère les données, les traite et les prépare bien comme il faut. C’est un peu ton pote qui fait tout le boulot de groupe et que tu remercies en lui payant une bière à la fin.
View : c’est celui qui met les paillettes dans la vie du projet. Il prend ce que le modèle a préparé et fait en sorte que ça soit joli. Mais attention, joli, c’est subjectif hein, parce qu’on a tous croisé des vues qui feraient pleurer même un daltonien.
Controller : c’est le chef d'orchestre, celui qui fait croire à tout le monde qu’il bosse dur alors qu’il fait juste passer le boulot du modèle à la vue. C’est un peu l'intermédiaire inutile mais obligatoire, comme un chef de projet.
class ArticleController extends AbstractController
{
#[Route('/article/{id}', name: 'article_show')]
public function show(int $id, ArticleRepository $repository): Response
{
$article = $repository->find($id);
return $this->render('article/show.html.twig', ['article' => $article]);
}
}
class ArticleRepository extends ServiceEntityRepository
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, Article::class);
}
public function find(int $id): ?Article
{
return $this->findOneBy(['id' => $id]);
}
}
<!-- templates/article/show.html.twig -->
<h1>{{ article.title }}</h1>
<p>{{ article.content }}</p>
MVC, ça te donne l’impression d’avoir une architecture super organisée, même quand tu développes à l’arrache. Ça permet de séparer clairement les responsabilités, pour que quand ça plante, tu saches exactement à qui gueuler dessus.
Bref, le MVC, c’est joli, c’est propre et ça sent bon les fleurs, mais seulement quand tu prends le temps de faire les choses proprement. Sinon, c’est juste un acronyme cool à balancer pour masquer ton bordel. Mais bon, l’essentiel, c’est que ça marche… ou pas…
Ce site utilise Umami pour analyser le trafic de manière anonyme. Acceptez-vous la collecte de données anonymes ?