Level 3 : Symfony 7.1 is coming
Salut collègue développeuse / développeur,
Troisième édition de cette newsletter, et déjà plus de 130 personnes inscrites ! Merci pour ton soutien !
Si tu veux m'aider à faire décoller ce nombre 🚀, n'hésite pas à partager avec tes collègues qui comme toi, souhaitent performer en Symfony.
Cette semaine c'est l'arrivée prochaine de Symfony 7.1 qui fait l’actu, mais je te réserve tout de même une nouvelle vidéo qui je l'espère, va t'aider dans ta gestion des formulaires complexes.
Et si tu n’es pas encore abonné et que tu ne veux pas rater les prochaines éditions, clique sans plus tarder sur le bouton ci-dessous.
Quoi de neuf ?
La sortie de la version 7.1 de Symfony se rapproche à grand pas. Une série d'annonces regroupant les prochaines nouveautés a été publiée.
Je te fais un petit résumé :
- TypeInfo component : ce nouveau composant vient remplacer le composant PropertyInfo, en ajoutant la gestion des types complexes (unions, intersections) et la récupération des types des paramètres de méthodes. Voir l'annonce
- AutowireInline : ce nouvel attribut PHP peut-être utilisé pour définir la configuration d'un service injecté, plutôt que d'effectuer cette configuration dans le ficher services.yaml. Un vrai plus à mon avis pour la lisibilité et la compréhension du code ! Hâte de tester cela en situation réelle. Voir l'annonce
- MapUploadedFile : là encore un nouvel attribut qui va être un game changer pour la gestion de l'upload. Si tu as suivi l'apparition des attributs #[MapRequestPayload]
ou #[MapQueryString]
en version 6.3, sache que #[MapUploadedFile]
est dans la même veine. Associé à un objet UploadedFile
, il permet de récupérer directement cet objet hydraté avec les données du fichier uploadé. Pour aller encore plus loin, il est possible d'ajouter des contraintes #[Assert\File]
ou #[Assert\Image]
directement à ce niveau, un vrai gain de temps et d'efficacité ! Voir l'annonce
- IsCsrfTokenValid : Ce nouvel attribut vient simplifier la gestion des token CSRF. Par exemple, lors de la génération d'un CRUD via le maker, au niveau des méthode delete()
, tu as l'habitude de voir l'utilisation de $this->isCsrfTokenValid('your_token_name')
qui permet de gérer le CSRF (dans ce cas il est obligatoire de le gérer manuellement vu qu'il n'y a pas d'utilisation de composant form, le delete étant un simple form ne comprenant qu'un bouton).
Avec le nouvel attribut, il te suffira d'ajouter #[IsCsrfTokenValid('your_token_name')]
au dessus du nom de méthode, et... c'est tout ! Si le token n'est pas valide, une exception sera lancée. Voir l'annonce
- Mais aussi pas mal de nouvelles contraintes pour les validations : MacAddress, Charset, Range of IP, Associative array...) Voir l'annonce
- Et de légères améliorations dans le Web profiler Voir l'annonce
La liste n'est pas exhaustive, mais je note surtout MapUplaodedFile, IsCsrfTokenValid et AutowireInline dans mon top 3 des nouveautés pour Symfony 7.1.
Et toi ? n'hésite pas à laisser en commentaire tes préférences et tes attentes pour cette nouvelle version :-)
Vidéos : formulaires dynamiques avec champs interdépendants
Cette semaine, j'ai enregistré une nouvelle vidéo que je te partage en exclusivité ! J'y montre comment réaliser un formulaire dynamique, avec des champs dépendants les uns des autres.
Ceci est réalisé via le composant DependantForm de Symfony UX. Je viens de le découvrir et pour moi qui aie toujours eu du mal avec la documentation officielle sur les events de formulaire, cette nouvelle approche est une petite merveille de simplicité :-)
Pour en savoir plus, tu peux regarder le site officiel de Symfony UX.
Apport d'affaires
Tu es Freelance et tu recherches une top mission en PHP/Symfony ?
Après plusieurs mois à construire une communauté solide autour de Symfony, avec cette newsletter et ma chaîne youtube, regroupant plusieurs centaines de développeurs ; après avoir échangé avec des dizaines d’autres freelances talentueux ; après avoir mis en place une routine de prospection efficace ; je lance cette semaine mon programme d’apport d’affaires 🤝.
Le principe est simple et transparent :
- je te trouve une mission, je prend 10% de commission sur ton TJM.
- je ne te trouve pas de mission, ça ne te coute absolument rien.
Clique sans tarder sur le bouton ci-dessous et tout te sera expliqué en détail.
Cette newsletter t'a plu et tu souhaites partager un article, un retour d'XP ou des idées d'améliorations ?
Écris moi à levelup@sylvainblondeau.dev