TP3 programmation WEB côté serveur

Notions à mettre en place

Mise en place d'un MVC simple
Classes PHP: contrôleur, métier, modèle, validation

Application de l'architecture MVC à votre projet

A. Analyse

Effectuez une analyse (personnelle) de votre projet:

  1. déduisez un diagramme de cas d'utilisation avec toutes les actions possibles. Posez les acteurs (les contrôleurs se déduisent implicitement) et les actions que l'on va retrouver dans vos contrôleurs (rappel: le fait de ne pas avoir d'action, ($_REQUEST['action']=Null) correspond aussi à une action qui généralement mène à une vue par défaut, souvent la première)

  2. répertoriez toutes les Vues nécessaires au projet (Vue d'erreur incluse !),

  3. définissez un diagramme de classes où l'on doit trouver les contrôleurs, les modèles, etc.

B. Reprise de l'architecture MVC vue en cours pour votre projet.

Reprenez le code de l'exemple de MVC vu en cours, essayez le (oui, il est aussi téléchargeagle sur ce site :-).

Il y a 3 exemples :

psr4

Si vous rencontrez une erreur indiquant que le répertoire cache ne peut être crée, allez dans index.php et modifiez la ligne  'cache' => 'cache', par  'cache' => false,

Nous supposerons dans un premier temps que vous avez 2 acteurs (mais peut être en avez-vous plus?).

  1. Dans votre structure d'application (arborescence), ajoutez les vues que vous avez faites dans les précédents TP.

  2. Commencez par coder un nouveau contrôleur CtrlUser : faites le constructeur (squelette du contrôleur) avec toutes les actions que vous avez trouvées dans votre analyse. Pour chaque action, vous devez définir une méthode associée dans la classe (laissez ces méthodes vides pour l'instant). Par exemple, supposons que vous vouliez "afficher la page d'accueil" quand vous appelez votre site sans action (action "ne rien faire" = NULL), vous allez compléter le code du constructeur, puis ajouter une méthode "accueil()" appelée lorsque REQUEST['action]=NULL, etc.

  3. Prenez une action (ex: "afficher la page d'accueil", "insérer une news" ou "insérer une tâche", ...), complétez le code de votre contrôleur pour cette action, faites une classe modèle qui appèle une Classe Gateway, et faites au moins une vue. Dans le cas ou votre site récupère des donnéees via un formulaire, n'oubliez pas de valider ces données avec une Classe Validation.

  4. Faites de même pour les autres actions, puis vos autres contrôleurs (CtrlAdmin au moins).

Ne faites pas encore la partie de code sur la connection d'un administrateur par exemple. Ce sera vu et travaillé par la suite.