Commentaires

Arthur l'apprenti developpeur


Mon ami Arthur est venu me rendre visite il y a quelques jours, il est en train d'apprendre le MVC et rencontre quelques difficultés à passer à la pratique.

Arthur, l'apprenti développeurJe pense avoir tout compris, mais de là à le développer, je suis perdu.

Bon ne t'inquiète pas Arthur, je connais plutôt bien le sujet, nous allons voir ça ensemble.

Qu'est ce que MVC


Pour commencer on va faire un petit rappel, le MVC est un Design Pattern (modèle de conception), qui signifie Model-View-Controller.

Le concept est de séparer les différentes partie du code d'une application selon si :

  • Ce code traite des données ou de l'accès aux données : le Modèle

  • Ce code permet la mise en forme des données pour l'affichage au client : la Vue

  • Ce code gère la logique associée à une demande : le Contrôleur


On le représente de la façon suivante :
[img]

Pour une demande client, un contrôleur permet de gérer toute la logique associée à cette page, il appellera entre autre un ou plusieurs modèle de données, et enverra les données traitées à une vue pour en retourner l'affichage au client.

Par exemple, si tu souhaites afficher la page d'authentification de ton site web, tu peux créer un contrôleur "authentification.php" qui contiendra toute la logique de vérification de mot de passe, un modèle "utilisateur.php" qui représente les données d'un utilisateur connecté, et une vue "authentification_formulaire.php" qui affiche un formulaire simple.

Dans ce cas, le fait d'appeler la page www.monsite.fr/authentification.php affichera le formulaire (la vue est retourné), et lorsque qu'un utilisateur valide le formulaire, il sera envoyé à la même adresse, qui dans ce cas procédera à l'authenfication (via le modèle) et construira un objet utilisateur, si l'authentification a réussie.

Orienter les requêtes url


Arthur, l'apprenti développeurJusque là c'est simple, je comprend très bien et ça me parait facile à réaliser.

Oui mais attention, de nos jours, l'implémentation basique du MVC a beaucoup évolué afin de faciliter la maintenance et l'évolutivité des applications, les contrôleurs ne sont plus associés à une seule et unique page, mais découpés en méthode dans un objet, on parle alors d'actions de contrôleur.
Chaque action, correspond à un affichage, qui peut être d'une page complète (une vue), ou d'une partie d'une page (vue partielle).

Arthur, l'apprenti développeurOula, tu va un peu vite avec tes machins partiels

Ne t'inquiète pas, nous aurons l'occasion de reparler rapidement de tout cela. Et d'ailleurs ça ne s'arrête pas simplement à la gestion des actions et des vues,pour mieux gérer ces actions et contrôleurs, on implémente un routeur, son but est de savoir quel contrôleur et quelle action appeler en fonction des informations envoyées par le client.

Dans ce cas l'url sera plutôt du type : www.monsite.fr/{controller}/{action}

Le routeur sera en charge d'analyser l'url afin de savoir quel contrôleur appeler et quelle méthode de ce contrôleur doit être utiliser.

Mise en pratique


Maintenant, je suis peut être aller un peu vite pour tout assimiler, mais je pense que le meilleur moyen de comprendre et d'essayer, comme on dit c'est en forgeant que l'on deviens forgeron. On va donc mettre en pratique avec une architecture MVC, un petit framework le tout en php Orienté Objet, tu est déjà au point sur Php et la POO?

Arthur, l'apprenti développeurOui j'ai déjà travaillé en Php orienté objet, je ne suis pas un expert, mais j'ai de bonnes bases.

J'ai terminé cette partie
Demander de l'assistance