Séance I-J
Exercice
Quelques explications sur l'Autoloader
Vous constaterez que nous n'avons pas de "require" pour chacune des classes dans le fichier seanceIJ.php
, pour autant vos classes seront accessibles. On utilise le mécanisme d'autoload de PHP qui permet d'éviter d'avoir des requires quand on utilise la POO. Cela s'avère très pratique quand nous avons beaucoup de classes à gérer.
Le code ci-dessus assure le lien avec tous les fichiers nécessaires. En fait, à chaque fois que vous aller utiliser une classe (new Classe ou Classe::...), PHP, va essayer de trouver un fichier qui se nomme Classe.php et automatiquement en faire un require pour l'intégrer.
Contrainte de cette solution, vous devez avoir un fichier par classe, et votre fichier doit se nommer exactement comme votre classe. Mais nous avons vu en cours, que cette contrainte est en fait une bonne pratique.
Les classes
Classe Abstraite Humain
Un Humain est un objet possédant un nom, un prénom et une date de naissance. Un Humain est capable de se présenter.
Classe Artiste.
Un Artiste
est un Humain
qui possède une spécialité. Une spécialité est un champ texte. Un artiste possède également une image (vous pouvez récupérer ces images directement sur Wikipedia par exemple).
Nous considérerons dans un premier temps deux classes héritant d'Artiste
: Un Auteur
(spécialité écrire) et un Dessinateur
(spécialité dessiner).
Implémentez cette classe ainsi que les classes filles nécessaires.
Livre
Classe Abstraire Livre
On va définir une classe abstraite Livre
qui contiendra les propriétés protected suivantes :
titre
: chaîne de caractères, on s'assurera que le titre est formaté avec une majuscule sur chaque mot.nbPage
: entier.auteurs
: tableau d'Auteurs. Un auteur est un Artiste dont la spécialité est d'écrire.
Implémentez cette classe et les méthodes nécessaires
Classe enfant : Roman et BandeDessinée
On définira deux classes enfants de cette classe Livre.
Une classe
Roman
ne possède pas de spécificité.Une classe
BandeDessinee
qui possède en plus des auteurs une liste de dessinateurs
Implémentez ces deux classes et les méthodes associés
Testez et implémentez les méthodes utilisées dans le fichier seanceIJ.php
Dernière mise à jour