Exercices - BdD avec PDO
Pré-requis :
Correction :
- En vidéo, tout le long des exercices (après l'énoncé correspondant)
- Dans le code, sur le repository dédié aux corrections sur GitHub.
26. Créer une base de données
- Ouvrir PhpMyAdmin
- Y créer une base de données
exo_beanies
- Créer des tables pour les objets
Contact
(nommer la tablecontact
)Beanie
(nommer la tablebeanie
)
- Créer un fichier de connexion à la BdD
includes/config.inc.php
et faire en sorte d'avoir une connexion fonctionnelle dans toutes vos pages. - Insérer des données dans la table
beanie
à l'aide de l'une des deux méthodes suivantes :- dans PhpMyAdmin, ajouter des données dans la table
beanie
(avec les valeurs de votre fichiervariables.php
par exemple) - écrire un script PHP
includes/fixtures.php
insérant les données
- dans PhpMyAdmin, ajouter des données dans la table
Correction
27. Formulaire de contact, en BdD
- Modifier votre page de contact pour insérer les données du formulaire dans la table
contact
- N'insérer les données que si aucune erreur n'est remontée
Correction
28. Utiliser les données de la BdD
Choisissez l'une des deux méthodes suivantes pour remplir nos bonnets depuis la BdD :
- Créer une classe
BeanieFactory
dansclasses/Factory/BeanieFactory.php
qui va avoir une méthodecreate()
- ayant pour paramètre un tableau (une ligne récupérée dans la BdD)
- renvoyant un objet
Beanie
contenant les données venues de la table
- Utilisez le flag
FETCH_CLASS
de PDO pour remplir les objets à l'aide de la BdD - Modifier vos pages pour récupérer les données depuis la table
beanie
, plutôt qu'une variable- Adapter le code des différentes pages pour utiliser la BdD plutôt que le tableau (fixe), utilisé jusqu'à présent
Pull Request
- Créez une Pull Request
- Invitez quelqu'un.e sur votre projet
- Faites vous inviter par cette personne également
- Relisez le code et faites vos retours (vérifiez que le code valide bien les normes PSR-12 et PSR-4, par exemple)
- Approuvez (ou non) sa PR
- Une fois votre PR validée par un.e pair.e, vous pouvez la fusionner (merge)
Correction
29. MVC et namespaces (⚠️ difficile)
Notre site ne suit pas parfaitement le modèle MVC. Il nous faudrait améliorer ça et re-structurer un peu les fichiers et leur organisation. Ce que nous voulons faire :
- Renommer le dossier
class
ensrc
et y créer au moins 3 sous-dossiers :Model
,View
etController
- Déplacer les vues (pages) dans
View
- Ranger les classes que vous aviez créées dans
Model
ou dans un autre dossier (par exemple, j'ai un dossierService
pour certaines classes) - Créer un objet Controller par page et y déplacer la logique (calculs PHP actuellement dans les pages)
- Faire en sorte que le front controller (
index.php
) appelle le bon contrôleur en fonction de l'url
⚠️ Pensez bien à mettre à jour les namespaces de vos classes et tous les appels à ces classes.
Correction
Révisions
Pour réviser tous ces points et les travailler, vous pouvez vous entrainer avec ces exercices de révision.