Level 1 : Hello Symfony world
Salut collègue développeuse/développeur,
Je suis Sylvain Blondeau, dev PHP / Symfony (+15 ans d'XP 🧙🏻♂️) et freelance depuis quelques mois.
Après avoir lancé ma chaîne youtube (+360 abonnés au moment où j'écris ces lignes) je souhaite franchir en ta compagnie une nouvelle étape avec cette newsletter.
Son objectif ? fédérer les développeuses et développeurs Symfony seniors, mais également les plus juniors motivés pour monter en compétences sur leur framework PHP préféré :-)
Au programme : tutos, articles et retours d'expériences sur l'écosystème PHP et Symfony en particulier.
Rien de très original, mais de la qualité, et tout ça dans la bonne humeur !
Quoi de neuf ?
La moitié de 18. Celle-là, elle est faite ✅.
Pour le reste, le développement de Symfony UX continue très fort. Le composant vient de sortir de son statut "expérimental".
Quelques BC breaks au passage sur les nouvelles versions, notamment la 2.16.
Jusqu’alors, l'attribut HTML data-action
devait être accompagné d'un data-action-name
, qui indiquait le nom de la méthode, et ses éventuels paramètres.
Cet attribut a été remplacé (pour mieux coller au fonctionnement natif de stimulus) par data-live-action-param="nom_methode"
et data-live-{PARAM_NAME}-param
.
Ainsi, le code
data-action="live#action" data-action-name="move(direction='up', speed='2')"
devient :
data-action="live#action" data-live-action-param="move" data-live-direction-param="up" data-live-speed-param="2"
Vidéos
Le composant Scheduler de Symfony - 25min
Dans cette vidéo, je présente le nouveau composant Scheduler de Symfony. Cette vidéo est celle qui a fait le plus de vue sur ma chaîne pour le moment, en effet il y a assez peu de contenu sur le sujet à l'heure actuelle. C’est pour cette raison que j’ai décidé de te la partager en premier 🎁.
Remarque : La documentation officielle s’est étoffée peu après l'enregistrement de cette vidéo, avec une réorganisation générale et l'apparition de nouveaux schémas explicatifs.
Je découvre également 2 nouveaux Attributes
#[AsCronTask('*/5 * * * *')]
ou
#[AsPeriodicTask(frequency: '5min')].
Ajoute cet attribut sur un service, répertorie-le dans config/messenger.yaml et lance le worker : le tour est joué ! Le Service devient un message récurrent, s’exécutant selon la périodicité définie dans l'attribut, ici 5 minutes.
Retour d'expérience
Depuis quelques mois est sorti le nouveau composant AssetMapper, maintenant intégré par défaut dans Symfony 7.
Il permet de charger très simplement les assets sans avoir besoin d'utiliser webpack. Tu l’auras compris, c’est un vrai game changer . Derrière cela, une nouvelle fois l’inarrêtable Kevin Dunglas.
AssetMapper permet de gérer le versionnement des assets (tu sais, la série étrange de chiffres/lettres à la fin de chaque nom de fichier qui évite les problèmes de cache de navigateur).
Il se base également sur importMap, qui est une fonctionnalité native des navigateurs pour gérer les imports JS. Plus besoin d'utiliser npm ou yarn pour charger les assets, mais plutot la commande
php bin/console importmap:require package_name
Bye bye node, yarn/npm, etc.
Exit également les temps de build interminable à chaque modification.
L'écosystème autour d'AssetMapper est en pleine effervescence. Il est aujourd'hui possible de gérer facilement les fichiers SCSS. L'outil ne propose pas de minification de fichier mais renvoie la balle aux serveurs web qui ont la possibilité de compresser efficacement les assets à la place.
En résumé avec AssetMapper, fini le casse tête de gérer Webpack, Webpack encore, le dossier node_modules, les versions de node, le collègue qui recompile via npm alors que le reste de l'équipe utilise yarn...
Note bien que si tu souhaites travailler sur de gros projets avec des process de build d'assets complexes, Webpack n'est pas mort ! et il est toujours possible de l'utiliser. Mais dans de très nombreux cas, AssetMapper s'avérera largement suffisant.
Et toi ? Utilise tu AssetMapper, Webpack, un autre outil, ou rien du tout ?
Conclusion
C’est déjà fini, j’espère que cette newsletter t’as servi. Si tu souhaites partager un article, un retour d'XP ou si tu as des idées d'améliorations, écris-moi à levelup@sylvainblondeau.dev
Vous êtes une entreprise et recherchez un développeur Symfony ? Vous souhaitez partager une offre d'emploi ?
Contactez-moi à jobs@sylvainblondeau.dev