23-01-2010, 09:07 AM
Pour ma part, je considère que Symfony implémente le modèle MVC 2.
L'idée de base de MVC, selon moi, c'est qu'il y a effectivement un contrôleur par modèle. Pour chaque concept métier manipulé (article, catégorie, utilisateur, etc...) on a donc un contrôleur qui doit être utilisé par la vue. Le problème c'est que l'on se retrouve vite avec énormément de contrôleurs à gérer.
MVC 2 est une évolution de MVC, qui peut être interprétée comme MVCC :
En plus des multiples contrôleurs du MVC, on a un contrôleur frontal qui s'occupe de rediriger n'importe quel requête vers le bon contrôlleur.
En symfony, on a par défaut 2 controlleurs frontaux à utiliser au choix, définis à la racine du répertoire web du site. Le premier est l'index.php, le second permet d'afficher des informations de débug pour le développeur.
Ce contrôleur frontal s'occupe ensuite de tout un tas de choses, et entre autres de rediriger le module correspondant à la requête qui saura quoi faire en fonction de l'action.
L'idée de base de MVC, selon moi, c'est qu'il y a effectivement un contrôleur par modèle. Pour chaque concept métier manipulé (article, catégorie, utilisateur, etc...) on a donc un contrôleur qui doit être utilisé par la vue. Le problème c'est que l'on se retrouve vite avec énormément de contrôleurs à gérer.
MVC 2 est une évolution de MVC, qui peut être interprétée comme MVCC :
En plus des multiples contrôleurs du MVC, on a un contrôleur frontal qui s'occupe de rediriger n'importe quel requête vers le bon contrôlleur.
En symfony, on a par défaut 2 controlleurs frontaux à utiliser au choix, définis à la racine du répertoire web du site. Le premier est l'index.php, le second permet d'afficher des informations de débug pour le développeur.
Ce contrôleur frontal s'occupe ensuite de tout un tas de choses, et entre autres de rediriger le module correspondant à la requête qui saura quoi faire en fonction de l'action.