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

Temps de lecture : 3 min

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 !

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…