MVC : comment séparer proprement ce qu'on va de toute façon mélanger ensuite

3 min de lecture

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 !

MVC, c’est quoi ce truc ?

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.

Exemple de MVC dans un projet Symfony

Le Controller

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]);
    }
}

Le Model (ou Repository)

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]);
    }
}

La View (Twig)

<!-- templates/article/show.html.twig -->
<h1>{{ article.title }}</h1>
<p>{{ article.content }}</p>

Pourquoi MVC ?

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…

Confidentialité

Ce site utilise Umami pour analyser le trafic de manière anonyme. Acceptez-vous la collecte de données anonymes ?