Quotidien Shaarli

Tous les liens d'un jour sur une page.

April 13, 2025

Analytics et préjugés : pourquoi les métriques n'intéressent pas que mon chat  • Lecodeestdanslepre

L'auteur montre comment il a mis en place son système de recommandation à partir des statistiques de visite de son site - le tout basé sur Symfony

Prevent Cross-Site Scripting (XSS) in Symfony: A Comprehensive Guide - DEV Community

L'auteur montre comment se prémunir des attaques XSS dans Symfony : pour les templates Twig en les échappant systématiquement, pour les entrées utilisateur en les "sanitizant" et en utilisant une politique de sécurité de contenu (CSP)

Omni et Kubevirt

Omni est une application qui permet de gérer des machines Talos sur diverses plateformes, facilitant la création et la gestion de clusters Kubernetes. Elle utilise un réseau VPN Wireguard pour authentifier et piloter les machines Talos, simplifiant ainsi l'infrastructure Kubernetes. Omni permet également de créer des templates de clusters pour automatiser le déploiement de machines virtuelles, notamment avec Kubevirt. Cependant, Omni présente des limitations, notamment l'absence de gestion automatisée des infrastructures cloud. L'intégration de Kubevirt permet de créer des VMs sur un cluster Kubernetes, mais nécessite une configuration spécifique, incluant l'installation de Kubevirt, CDI, et LocalPathProvisioner.

Symfony Messenger : vole petit petit pigeon voyageur  • Lecodeestdanslepre

L'auteur montre, avec un exemple simple, comment utiliser Symfony Messenger pour découpler son code (traitement de statistiques de navigation)

Les DTOs : ou comment être sûr que tes données ne ressemblent pas à un kebab  • Lecodeestdanslepre

L'auteur explique à quoi servent les DTOs et comment les utiliser dans le contexte d'une application Symfony en particulier.

Upgrading Sensio Security Annotation: The Full Story | Tomas Votruba

sensio/framework-extra-bundle est déprécié et est remplacé par l'attribut natif de Symfony : #[IsGranted()]
L'auteur montre l'utilisation de Rector en plusieurs étapes pour faire la migration.

Lesson 4: Happiness is the expansion of possibility - Scott H Young

L'auteur explique que l'apprentissage est aussi une finalité de la vie, et pas seulement un moyen utile pour subsister. Par contre, la compétition, la peur d'échouer, etc. peuvent décourager. Il propose donc des moyens pratiques pour faciliter l'apprentissage.

Le HTTP Client Symfony : parce que cURL, c'est tellement 2010  • Lecodeestdanslepre

Une belle déclaration d'amour au client HTTP de Symfony :-) Plus sérieusement, l'auteur montre comment s'en servir et quelques cas très intéressants comme des requêtes asynchrones

Symfony/Validator pour les règles fonctionnelles

DarkChyper explique comment utiliser Symfony/Validator pour gérer des règles de validation dynamiques et fonctionnelles, notamment dans un contexte où les contraintes doivent être paramétrables par les utilisateurs (exemple : gestion de salles de répétition pour MusicBox). L’article détaille la création de contraintes personnalisées, l’utilisation du patron Bridge pour séparer abstraction et implémentation, et l’intégration avec une base de données pour stocker les paramètres. Il montre comment étendre le système de validation de Symfony pour permettre aux administrateurs de configurer des règles (délais, limites périodiques, etc.) via une interface, tout en gardant une architecture flexible et maintenable. Le code source et une démo sont disponibles pour illustrer la mise en œuvre. Une approche intéressante pour adapter les validations aux besoins métiers spécifiques sans modifier le code source.