Les rubriques

Exercice 3 sur 9 du chapitre 2 · 100 XP · 5 objectifs vérifiés par des tests

Notions abordées : Énumérationenummatch

Madame Lou s'inquiète : tôt ou tard, Gaston rangera son article d'orage dans la rubrique « Meteo », sans accent, et Odette le sien dans « fête du Village ». Une rubrique écrite à la main finit toujours par avoir dix orthographes. La gazette n'en a que trois, et PHP sait représenter une liste fermée de choix : une énumération.

Votre mission

  1. Déclarez une énumération Rubrique aux valeurs de type string, avec trois cas : FeteDuVillage ('fete-du-village'), Meteo ('meteo') et FaitsDivers ('faits-divers').
  2. Ajoutez-lui une méthode libelle(): string, qui renvoie avec match le nom lisible : « Fête du village », « Météo », « Faits divers ».
  3. La propriété rubrique d'Article devient une Rubrique, et chaque article reçoit la sienne : rubrique: Rubrique::Meteo.
  4. Dans afficherArticle(), affichez le libellé de la rubrique, toujours en majuscules.

Rappel

Une énumération déclare toutes les valeurs possibles d'un type, et aucune autre. Rubrique::Meteo ne peut pas être mal orthographiée sans que PHP le signale. Comme une classe, elle peut avoir des méthodes. Dans une méthode, $this est le cas sur lequel on l'appelle : pour Rubrique::Meteo->libelle(), $this vaut Rubrique::Meteo. self, lui, désigne le type Rubrique tout entier, pas un cas. match ($this) compare donc le cas courant à chaque branche (Rubrique::Meteo => 'Météo', qu'on peut aussi écrire self::Meteo à l'intérieur de l'énumération), et renvoie le résultat de la première qui correspond. Comme les trois cas sont couverts, il n'y a pas besoin de branche default.