Exercices classes abstraites
Exercice 0
Créez un repository public avec un README sur GitHub, appelez-le
coda-bph-j6Créez un dossier
classes-abstraitesdans le dossiercoda-bph-j6
Exercice 1
Créez un dossier exercice-1.
Pour cet exercice, vous allez créer 4 fichiers :
AbstractUser.phpAdmin.phpMember.phpindex.php
AbstractUser.php
Dans le fichier AbstractUser.php, vous allez créer la classe abstraite AbstractUser.
Elle a pour attributs, tous protected:
idqui peut être null ou un int, et dont la valeur par défaut estnullusernamequi est une string qui n'a pas de valeur par défautpasswordqui est une string qui n'a pas de valeur par défautrolequi est une string qui n'a pas de valeur par défaut
Son constructeur prend tous les attributs en paramètres, sauf id.
Tous les attributs ont des getters et des setters public.
Member.php
Dans le fichier Member.php, vous allez créer la classe Member qui hérite de la classe AbstractUser.
Elle a pour attributs, tous private:
biographyqui est une string et qui n'a pas de valeur par défautfavoritesqui est un tableau et dont la valeur par défaut est un tableau vide
Son constructeur prend tous les attributs en paramètres, sauf id et favorites. Son attribut role prend la valeur "MEMBER".
Tous les attributs ont des getters et des setters public.
Admin.php
Dans le fichier Admin.php, vous allez créer la classe Admin qui hérite de la classe AbstractUser.
Elle n'a pas d'attributs supplémentaires. Son attribut role prend la valeur "ADMIN".
Elle a une méthode publique supplémentaire :
public function changeMemberRole(Member $member) : void: cette méthode permet de modifier le rôle d'une instance de la classeMemberreçue en paramètres. Si sonroleestMEMBERil devientPREMIUM_MEMBERsinon il devientMEMBER.
index.php
Dans votre fichier index.php, faites en sorte de tester vos classes :
Instanciez un
Memberet affichez toutes ses informations.Instanciez un
Adminet affichez toutes ses informations.Faites en sorte que l'
Adminchange le role duMemberet affichez les informations duMemberFaites en sorte que l'
Adminchange le role duMemberune seconde fois et affichez les informations duMember