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