Chapitre 2 du parcours Apprendre PHP 8

La rédaction s'organise

9 exercices · 1 100 XP · environ 3 h 15

Ce chapitre fait travailler : ClasseObjetConstructeurArguments nommésreadonlyVisibilitéMéthode$thisÉnumérationenummatchCompositionObjet dans un objetType nullablenullValeur par défautInterfaceimplementsPolymorphismeProperty hookgetsetprivate(set)Propriété virtuelleFonction fléchéefnarray_filter()count()instanceofarray_map()array_unique()implode()

Les exercices du chapitre

  1. La classe Article

    Exercice 1 · 100 XP · 5 objectifs vérifiés par des tests

    Une coquille s'est glissée dans le quatrième article : 'titr' => … au lieu de 'titre' => …. Regardez l'aperçu : le concours de soupe est sorti sans titre. Avec des tableaux, PHP se contente d'un avertissement (« Undefined array key ») et sort la page quand même, sans titre. Madame Lou veut un modèle d'article que personne ne puisse remplir de travers : une classe.

    ClasseObjetConstructeurArguments nommés

  2. Un titre qui ne bouge plus

    Exercice 2 · 100 XP · 6 objectifs vérifiés par des tests

    Catastrophe : la une annonce que la fête est annulée ! Léo est encore passé par là, et il a suffi d'une ligne pour changer un titre après coup. Un article publié ne devrait plus bouger, et son texte n'a pas à être touché hors de la classe.

    readonlyVisibilitéMéthode$this

  3. Les rubriques

    Exercice 3 · 100 XP · 5 objectifs vérifiés par des tests

    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.

    Énumérationenummatch

  4. Qui a écrit ça ?

    Exercice 4 · 100 XP · 5 objectifs vérifiés par des tests

    Gaston a fini par accepter de signer l'article sur le chat du maire. Les lecteurs, eux, veulent savoir qui leur parle. Madame Lou souhaite que chaque article soit signé du nom et du rôle de son auteur : « Par Gaston, garde champêtre ».

    CompositionObjet dans un objetMéthode

  5. Une photo pour la une

    Exercice 5 · 100 XP · 4 objectifs vérifiés par des tests

    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.

    Type nullablenullValeur par défaut

  6. Articles et petites annonces

    Exercice 6 · 150 XP · 5 objectifs vérifiés par des tests

    Madame Lou a un vieux vélo de factrice à vendre, et elle n'est pas la seule : les petites annonces arrivent à la poste. Une annonce n'est pas un article : ni auteur, ni chapô, mais un prix et un contact. Pourtant, la une doit afficher l'un comme l'autre, sans se demander qui est qui.

    InterfaceimplementsPolymorphisme

  7. Un prix qui se tient

    Exercice 7 · 150 XP · 5 objectifs vérifiés par des tests

    Léo a encore frappé. Il a proposé son vieux vélo cassé dans les petites annonces, au prix de -5 € : « Je vous paie pour l'emporter ! » Madame Lou n'a pas ri. Un prix ne doit jamais être négatif, quoi qu'on écrive dans new Annonce(...). Et les annonces à 0 € doivent afficher « Gratuit » plutôt que « 0 € ».

    Property hookgetsetprivate(set)Propriété virtuelle

  8. Le sommaire

    Exercice 8 · 150 XP · 4 objectifs vérifiés par des tests

    Madame Lou trouve la une un peu longue à parcourir avant sa tournée. Elle veut une ligne tout en haut, qui résume le numéro : « Dans ce numéro : 4 articles et 1 petite annonce. » Et pas question de la recompter à la main à chaque numéro : PHP sait filtrer et compter un tableau.

    Fonction fléchéefnarray_filter()count()instanceof

  9. Les signatures

    Exercice 9 · 150 XP · 4 objectifs vérifiés par des tests

    Gaston est vexé : le sommaire compte ses articles, mais ne dit pas qui les a écrits. Madame Lou ajoute donc les signatures : « Dans ce numéro : 4 articles et 1 petite annonce, signés Madame Lou, Gaston, Odette. » Gaston a écrit deux articles, mais il ne signe qu'une fois.

    array_map()array_unique()implode()