Jérôme Cutrona

Version statique de l'intranet de Jérôme Cutrona - Rejoindre la version dynamique 🔒

Les exemples et corrections sont potentiellement non fonctionnels.

B.U.T. Informatique - IUT de Reims - Université de Reims

Développement PHP objet, s'abstraire de la génération manuelle de la page Web - Sujet complémentaire

Navigation

Objectifs de la séance

  • S'abstraire de la génération manuelle de la page Web
  • Écrire des classes en PHP
  • Se familiariser avec la mécanique des tests unitaires

Consignes

Ce sujet complémentaire est la suite du TP « S'abstraire de la génération manuelle de la page Web ». Les questions seront logiquement traitées dans le même dépôt Git que le sujet principal.

Création d'une nouvelle classe « SectionWebPage » dérivant de la classe « WebPage »

Afin d'améliorer le comportement de la classe « WebPage », nous allons écrire une nouvelle classe « SectionWebPage » qui gèrera automatiquement des sections, leurs titres et un menu associé. Pour cela, la classe « SectionWebPage » héritera de « WebPage » et proposera les spécifications suivantes :

Le diagramme précédent est celui de la classe SectionWebPage qui hérite de la classe classe WebPage.

La documentation des spécifications de la classe vous est fournie.

Travail à réaliser
  1. Récupérez le fichier de tests de la classe « SectionWebPage » (télécharger) et enregistrez-le dans le répertoire « tests »
  2. Lancez la commande
    phpunit
    pour vérifier l'adéquation entre votre classe et le comportement prévu (ces tests sont minimes)
  3. Dans le fichier « SectionWebPage.php », écrivez et documentez la classe « SectionWebPage » selon les spécifications fournies, en dehors de la méthode « slugify() »
  4. Écrivez la méthode « slugify() » qui transforme un texte, généralement HTML, en une étiquette « slug » répondant aux contraintes suivantes :
  5. Testez votre classe avec ce script d'exemple qui doit être rendu pleinement fonctionnel par votre classe SectionWebPage : Exemple de page Web produite en PHP objet avec la classe WebPage
  6. Validez le code HTML produit par votre classe

Améliorer la classe WebPage

Modifiez votre class WebPage (ou dérivez la classe WebPage en WebPageEnhanced) pour lui ajouter d'autres méthodes utiles :

  • addKeywords()
  • addDescription()
  • addAuthor()
  • setLanguage()

Cette classe pourrait également mettre en œuvre le chaînage de méthodes pour améliorer l'expérience développeur.

Classe MaterialWebPage héritant de WebPage

Proposez une classe MaterialWebPage héritant de WebPage et permettant de faciliter la production de pages Web utilisant les Material Icons ainsi que les composants Material Design. Pour des raisons de performance, les scripts JavaScript et les feuilles de style nécessaires seront ajoutés à la fin de <body>. Cela doit être réalisé de façon propre et flexible, par exemple en implémentant une méthode dédiée appendScriptToBody().

Vous pouvez télécharger une page d'illustration du fonctionnement de MaterialWebPage (télécharger) dont le rendu devrait être le suivant : Exemple de page Web produite en PHP objet avec la classe MaterialWebPage