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

Symfony 6 « avancé » - Questions complémentaires

Navigation

Objectifs de la séance

  • Création d'une extension Twig

Consignes

Ce sujet comporte des questions complémentaires du TP « Symfony 6 « avancé » ». Les questions seront logiquement traitées dans le même dépôt Git que le sujet principal.

Amélioration de l'interface et de l'expérience utilisateur

En plus de celles déjà apportées dans le sujet de TP, de nouvelles améliorations de l'interface utilisateurs peuvent être imaginées.

Création d'une extension Twig pour l'affichage des dates

Dans votre interface, les dates de création des annonces sont affichées dans un format date classique (voire en anglais), ce qui ne facilite pas la perception de l'ancienneté de l'annonce. Vous allez écrire une extension Twig pour afficher les dates de manière plus intelligible. Le résultat attendu sera validé par des tests fournis, vous serez donc confronté au développement guidé par les tests (« Test driven development » en anglais). Puisque la problématique de base repose sur les dates, vous allez utiliser le nouveau composant « Clock » de Symfony.

Travail à réaliser
  1. Lisez la documentation de Symfony sur les extensions Twig
  2. Créez une extension Twig nommée « DateFormatterExtension » en utilisant le « MakerBundle » de Symfony
    Information

    Pour découvrir ce que vous pouvez générer, lancez la commande suivante :

    php bin/console make:
  3. L'extension Twig proposera une fonction et un filtre nommés « date_formatter » qui prendront en paramètre une date et retourneront une chaîne de caractères dont la valeur vous sera donnée par le jeu de tests fourni
  4. Lisez la documentation du composant « Clock » de Symfony
  5. Demandez le service clock dans le constructeur du « Runtime » de votre extension Twig
  6. Faites en sorte que votre extension Twig passe les tests PHPUnit fournis :