Créez un repository GitHub public avec un README pour votre projet, appelez-le bre03_php_userbasepoo
.
Clonez le dans le dossier sites/php
de votre IDE.
Récupérez le zip des fichiers du projet sur Discord.
Dans votre PhpMyAdmin, créez une base de données prenomnom_userbase_poo
et importez-y le fichier SQL users.sql
que vous trouverez sur Discord.
Créez un dossier models
et créez-y un fichier User.php
.
Vous allez y définir une classe User
.
Votre User
a 5 attributs private :
id
qui est un int et peut être null, sa valeur par défaut est nullusername
qui est une stringemail
qui est une stringpassword
qui est une stringrole
qui est une string, sa valeur par défaut est "USER"
Le constructeur de la classe User
prend en argument les attributs suivants :
Il a des getters et setters pour chacun des attributs.
Créez un dossier managers
et créez-y un fichier UserManager.php
.
Vous allez y définir une classe UserManager
.
Votre UserManager
a 2 attributs private :
users
qui est un tableau, sa valeur par défaut est un tableau videdb
qui est une instance la classe PDOLe constructeur de la classe UserManager
ne prend pas d’argument mais il initialise son attribut db avec les informations de connexion à votre base de données.
La classe UserManager
a un getter et un setter pour l’attribut users
.
La classe UserManager
a 3 méthodes public :
loadUsers
qui ne prend pas d’arguments et ne retourne riensaveUser
qui prend un User
en argument et ne retourne riendeleteUser
qui prend un User
en argument et ne retourne rienPour l’instant, ne codez pas le comportement de ces méthodes.
Vous allez maintenant coder la méthode loadUsers
de votre UserManager
. Celle-ci doit récupérer tous les utilisateur depuis la base de données. Pour chacun des utilisateurs vous allez instancier une instance de classe User
que vous hydraterez avec les informations récupérées en base de données. Vous stockerez tous ces User
dans un tableau puis vous utiliserez le setter de l’attribut users
du UserManager
pour remplacer le tableau existant par celui que vous venez de créer.
Dans le fichier logic/display-users.php
vous allez instancier une instance de la classe UserManager
puis appeler sa méthode loadUsers
pour en stocker le résultat dans une variable.
Utilisez les données obtenues grâce aux étapes 4.1 et 4.2 pour dynamiser la table des utilisateurs dans le fichier template/user-list.phtml
. N’oubliez pas de dynamiser le lien du bouton de suppression.
Reproduisez le processus de l’étape 4 mais cette fois vous allez récupérer les données du formulaire pour remplir une instance de classe User
et la passer au UserManager
qui la sauvegardera en base de données.
N’oubliez pas de rediriger vers index.php
une fois que logic/create-user.php
aura fini sa création.
Même processus mais pour supprimer un utilisateur.