Pratique

Se servir d'une fonctionnalité, tout de suite

De courts exercices, à part des parcours : un code écrit à l'ancienne, à réécrire avec la fonctionnalité. Souvent une nouveauté du framework, parfois un point précis qui mérite qu'on s'y arrête.

Par version : Symfony 8.2 11 Laravel 13 8

  • 20 exercices
  • 20 nouveautés

20 exercices

Trier : Récents Titre

Cette semaine

6
  1. Laravel 13.34 Nouveauté Compter les lignes de plusieurs tables en une assertion assertDatabaseCount() accepte un tableau : le nombre de lignes attendu dans chaque table, vérifié en une seule assertion. TestsBase de données Faire l'exercice
  2. Symfony 8.2 Nouveauté Un nom par version d'API, et des groupes à écarter #[SerializedName('nom', groups: 'v1')] : une propriété change de nom selon le groupe ; ignored_groups écarte un groupe sans toucher à la classe. SerializerAPI Faire l'exercice
  3. Laravel 13.33 Nouveauté Relire les colonnes calculées par la base avec #[Refreshes] Un modèle marqué #[Refreshes] relit, après chaque écriture, les colonnes que la base remplit elle-même : valeur par défaut, colonne générée. Eloquent Faire l'exercice
  4. Symfony 8.2 Nouveauté Un Cache-Control pour le CDN, un autre pour le navigateur $response->cacheControl('CDN') écrit un CDN-Cache-Control : le CDN, qu'on sait purger, garde la page longtemps ; le navigateur, non. HttpFoundationCache HTTP Faire l'exercice
  5. Laravel 13.32 Nouveauté Passer un fichier d'un disque à l'autre avec moveToDisk() copyToDisk() et moveToDisk() font passer un fichier d'un disque à un autre en flux, sans le charger en mémoire. Stockage Faire l'exercice
  6. Symfony 8.2 Nouveauté Un lien de réinitialisation qui ne sert qu'une fois UriSigner::sign() accepte une « version » : signez le lien avec l'empreinte du mot de passe, et il meurt dès que le mot de passe change. HttpFoundationSécurité Faire l'exercice

Avant

14
  1. Symfony 8.2 Nouveauté Des écouteurs qui se placent les uns par rapport aux autres #[AsEventListener(after: …, before: …)] : l'ordre des écouteurs se dit par leurs noms, plus par des priorités devinées. EventDispatcher Faire l'exercice
  2. Symfony 8.2 Nouveauté Des rôles par famille, avec des jokers ROLE_BLOG_* : une clé de role_hierarchy couvre toute une famille de rôles, y compris ceux qui ne sont déclarés nulle part. SecurityRôles Faire l'exercice
  3. Laravel 13.26 Nouveauté Ne traiter que le dernier événement d'une rafale avec #[DebounceFor] Un écouteur mis en file avec #[DebounceFor] attend la fin de la rafale et ne traite que le dernier événement, là où ShouldBeUnique gardait le premier. Files d'attenteÉvénements Faire l'exercice
  4. Laravel 13.26 Nouveauté Migrer des fichiers au fil des lectures avec read-through Un disque read-through lit le nouveau stockage, se replie sur l'ancien et recopie ce qu'il y trouve : la migration se fait toute seule. Stockage Faire l'exercice
  5. Laravel 13.31 Nouveauté Vérifier qu'un mail ne part qu'une fois assertSentOnce() et assertSentOnDemandOnce() : les faux Mail et Notification disent enfin « exactement une fois » en un mot. TestsMailNotifications Faire l'exercice
  6. Symfony 8.2 Nouveauté Un champ pour une période, avec BoundsType Deux dates et la règle qui les ordonne tiennent dans un seul champ : plus d'écouteur POST_SUBMIT pour comparer les bornes à la main. Formulaire Faire l'exercice
  7. Laravel 13.24 Nouveauté Restreindre les clés d'un tableau avec array_keys Une règle de validation pour « ce tableau ne contient que ces clés » : plus de closure qui compare array_keys() à une liste. Validation Faire l'exercice
  8. Symfony 8.2 Nouveauté Des abonnés lisibles : method et priority ['tracer', 100] devient ['method' => 'tracer', 'priority' => 100] : getSubscribedEvents() dit enfin ce que contient chaque case. EventDispatcher Faire l'exercice
  9. Symfony 8.2 Nouveauté Décrire un formulaire par attributs Les champs d'un formulaire se déclarent sur le DTO, juste à côté des contraintes de validation : plus de classe de formulaire pour les cas simples. FormulaireDTO Faire l'exercice
  10. Symfony 8.2 Nouveauté Laisser remonter une ValidationFailedException Une ValidationFailedException non attrapée donne désormais une 422 avec la liste des violations : plus besoin de l'envelopper. ValidatorAPI Faire l'exercice
  11. Symfony 8.2 Nouveauté Lire toute une collection avec [*] Un chemin comme [*][membres][*][email] remplace les boucles imbriquées : PropertyAccess lit chaque élément d'une collection. PropertyAccess Faire l'exercice
  12. Laravel 13.30 Nouveauté Regrouper les éléments voisins avec chunkBy() Les messages consécutifs d'un même auteur se regroupent en une ligne, sans boucle ni variable de suivi. Collections Faire l'exercice
  13. Symfony 8.1 Nouveauté Lire un en-tête avec #[MapRequestHeader] Un en-tête HTTP arrive directement en argument du contrôleur, et son absence donne une 400 sans une ligne de code. ContrôleurHttpKernel Faire l'exercice
  14. Symfony 8.2 Nouveauté Des sous-commandes à la Docker tenant --name=acme users list : le groupe porte l'option une seule fois, chaque sous-commande la lit dans la chaîne des commandes. Console Faire l'exercice