Voici une proposition d'architecture MVC pour l'élaboration d'un projet ou de TP en cours
L'objectif pédagogique est :
- Appréhender un projet par couche via MVC
- Faire un projet dans les bests pratiques (d'entreprise)
- Orchestrer via un gestionnaire de package (composer)
- Développement de test unitaire
- Début d'approche pour l'enseignement d'une framework (symfony, slim, Laravel ...)
Cible :
- Première année / 2e semestre pour AP ou Support
- Deuxième année / 1re semestre pour AP
Installation du projet
$ composer install
Mettre un fichier .env
$ cp .env-exemple .env
Puis renseigner les variables d'environnement dans le fichier .env
Demarrer ton projet
$ composer start
En cas de création ou de mise a jour des classes du projet, faire la commande de autoloader
$ composer dump-autoload
Pour la base de donnée, elle se trouve dans le répertoire "docs/bddqcm.sql"
Version | Service | DESCRIPTION |
---|---|---|
^5.4 | vlucas/phpdotenv | Loads environment variables |
^3.3 | twig/twig | Template Engine (VIEW couch) |
^1.3 | nikic/fast-route | Router Engine (CONTROLLER couch) |
^8.0 | PHP Engine | |
^2.0 | Composer Dependency Manager | |
Testing |
Le user envoie une requête "Demande" HTTP via un browser, voici l'adresse http://localhost/lister
La couche CONTROLLER (via FastRoute) réceptionne la requête HTTP -> /lister
et l'envoie sur le bon controller -> Quizz\Controller\Questionnaire\ListController
La couche MODEL se charge de gestion des données
La database est en relation avec la couche MODEL
Une fois le traitement de données via la couche MODEL, les données sont envoyées dans un moteur de template (template angine) -> Twig
Dans la couche VIEW, les données sont placées dans les composants des templates HTML puis transmis au user via le protocole HTTP
Le user réceptionne la requête "Reponse" pour que le browser puisse interpréter le code d'interface (HTML/CSS/JS) avec sa runtime local
Benoit Foujols - ORT Sup' Montreuil - AC Creteil