Une photo pour la une

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

Notions abordées : Type nullablenullValeur par défaut

Le photographe du village, c'est-à-dire le neveu d'Odette, a pris la citrouille de l'an dernier sous la lune. Madame Lou veut la voir en une. Mais tous les articles n'auront pas de photo : il faut une propriété qui puisse ne rien contenir.

Votre mission

  1. Ajoutez à Article une propriété photo en lecture seule, de type ?string, qui vaut null par défaut. C'est le nom d'un fichier du dossier public/images/.
  2. Donnez à l'article de la fête la photo 'citrouille.svg'.
  3. Dans afficherArticle(), sous le titre, quand l'article a une photo, affichez <img class="photo" src="images/citrouille.svg" alt="…">, avec le titre de l'article comme texte alternatif.

Rappel

null veut dire « pas de valeur ». Un type précédé d'un ?, comme ?string, accepte une chaîne ou null. Avant de se servir d'une valeur nullable, on vérifie qu'elle est là : if ($article->photo !== null). Le texte alternatif alt décrit l'image à qui ne la voit pas.

Pour remplacer null par une valeur de secours, l'opérateur ?? évite le if : $article->photo ?? 'pas-de-photo.svg' vaut la photo si elle existe, et 'pas-de-photo.svg' sinon. Il sert aussi pour une clé de tableau qui peut manquer : $tableau['cle'] ?? ''.