Aller au contenu

Projet

BD

  • Analysez le MCD proposé dans les consignes du projet.
  • Dans MySql, créez les différentes tables. N'oubliez pas de respecter les contraintes d'intégrité. A titre d'exemple, voici une vidéo dédiée à un ancien projet : (Exemple >>)
  • Insérez également un jeu de données.
  • Réalisez un export de votre base de données. A titre d'exemple, voici une vidéo dédiée à un ancien projet : (Exemple >>)

Classes

Déterminez les différentes classes PHP nécessaires pour manipuler les tables créées. Tenez compte qu'une même classe PHP peut reposer sur plus d'une table de base de données (un table n'est pas forcément représentée sous forme de classe PHP),

Ajustez la structure

Créez l'aborescence comme vue dans l'exercice du mini-blog.

Astuce

Les différentes vues peuvent être placées à la racine du site. Il n'y a pas d'obligation de créer un dossier nommé public

Commencez pas à pas en vous inspirant de l'exercice du mini-blog

Exemple :

  • Créez la classe Brocanteur
  • Modifier l'UC-A.4 : Consulter les brocanteurs afin que les données proviennent de la BD

    • Lister tous les brocanteurs dont la participation à la foire aux puces est déjà confirmée
    • Affichez le détail d'un brocanteur
    • Affichez le détail d'un objet
  • Créez la classe Objet

  • Modifiez l'UC-B.3 : Ajouter un objet

  • ...

Conseils

  • Une classe modélise chaque concept (brocanteur, objet...) (namespace: brocante), similaires à la classe Article de l'exercice blog
  • Une classe gère les opérations CRUD de chaque concept (ces classes contiendront donc des méthodes permettant d'effectuer les INSERT, SELECT, UPDATE, DELETE) (namespace: brocante), similaires à la classe ArticleRepository de l'exercice blog; si nécessaire, certaines fonctions peuvent utiliser plusieurs classes : la classe DBLink (namespace: DB), un fichier config.inc.php avec les paramètres d'accès à la DB
  • N.B. Dans un projet plus vaste, on peut imaginer plusieurs namespaces

Séparation des couches vue et modèle:

  • Les vues ne contiennent aucune instruction PDO ou Mysqli. Par contre, dans celles-ci, il faut inclure (require) les fichiers contenant les classes modélisant le(s) concept(s) à utiliser dans la vue et les classes contenant les méthodes effectuant les opérations CRUD,
  • Les classes ne contiennent aucune balise HTML.

Eviter les redondances de code :

  • Travailler avec des includes et/ou des fonctions
    • Évitez d’intégrer la logique métier dans les vues et limitez leur rôle au rendu de l’interface
    • Déplacez les traitements vers des fonctions dédiées dans des fichiers distincts
    • Organisez le projet de manière modulaire en séparant clairement les responsabilités

Exemple de code : blog >>