Quotidien Shaarli

Tous les liens d'un jour sur une page.

Aujourd'hui - February 23, 2026

Mutualiser les autorisations Symfony avec un voter générique | studo.dev

L'article explique comment standardiser la déclaration des droits avec une interface, implémenter cette interface sur les entités concernées, et créer un voter unique pour gérer les autorisations. Une solution efficace pour éviter la répétition de code et centraliser la logique d'accès, particulièrement utile dans les projets SaaS. L'article aborde également les améliorations possibles et les limitations de cette approche.

Tracking State Changes in API Platform: The Power of [‘previous_data’] | by Yusuf Biberoğlu | Feb, 2026 | Medium

Cet article explore la gestion des changements d'état dans API Platform, en se concentrant sur l'utilisation de previous_data pour suivre les modifications. L'auteur illustre comment cette fonctionnalité permet de détecter efficacement les changements spécifiques, comme le passage d'un statut "brouillon" à "publié" pour une annonce, et de déclencher des actions comme l'envoi d'une notification. Contrairement à l'approche traditionnelle avec Doctrine UnitOfWork, previous_data offre une solution plus propre, moins verbeuse et plus facile à tester, sans coût de performance supplémentaire, car elle utilise une copie de l'objet déjà récupéré.

The DQL vs. Native SQL Showdown - DEV Community

Cet article compare l'utilisation de DQL (Doctrine Query Language) et de SQL natif dans l'écosystème Symfony, en se basant sur des exemples concrets avec Symfony 7.4 et PHP 8.4+. Il explore les performances, la maintenabilité et l'expérience de développement des deux approches. L'auteur définit d'abord un modèle de domaine simple avec une entité Product, puis illustre l'utilisation de DQL à travers un exemple de requête dans un repository. Les avantages de DQL, comme la manipulation d'objets et la portabilité entre bases de données, sont mis en avant. L'article promet également une analyse des performances et de l'hydratation des résultats.

Stop Hardcoding Your Business Logic: Using Symfony Expression Language for Dynamic Features | by Taharmoustalik | Feb, 2026 | Medium

L’article explique comment éviter de coder en dur la logique métier dans un projet Symfony en utilisant le composant Symfony Expression Language pour rendre ces règles dynamiques et modifiables sans déploiement de code, en les stockant par exemple dans une base de données ; il décrit l’intérêt de cette approche face à des if/else classiques, présente la création d’une table de règles (action_policies) et un service qui évalue ces expressions dans un contexte donné (ex. utilisateur), tout en permettant d’ajouter des fonctions personnalisées pour étendre la logique.

Stop Using if Statements for Security: The Power of Symfony Voters | by Aghar Saifeddine | Feb, 2026 | Medium

Cet article explique comment améliorer la gestion des permissions dans une application Symfony en utilisant les Voters, plutôt que des conditions if/else dans les contrôleurs. Les Voters permettent de centraliser et simplifier la logique de sécurité, en déléguant les vérifications d'accès à des classes spécialisées. L'auteur illustre cela avec un exemple concret de gestion des droits d'édition et de visualisation des posts dans un blog. Il montre comment créer et utiliser un Voter pour nettoyer et sécuriser le code des contrôleurs.

How to Integrate Dodo Payment in Symfony 7 (Step-by-Step Guide) | by Pranan Subba | Feb, 2026 | Medium

Ce guide explique étape par étape comment intégrer le système de paiement Dodo dans une application Symfony 7. Il couvre la création d'un compte Dodo, la configuration des produits, l'installation du SDK PHP, la gestion des variables d'environnement, la création des routes et services de paiement, ainsi que la gestion des retours après paiement. Le tutoriel est conçu pour être accessible aux débutants et met l'accent sur la simplicité et la clarté.

Implementing URL signer in Pagination in Symfony 7. | by Pranan Subba | Feb, 2026 | Medium

Ce partage explique comment implémenter un système de signature d'URL pour la pagination dans Symfony 7. L'auteur, Pranan Subba, montre comment utiliser le service UriSigner pour signer les liens de pagination, empêchant ainsi toute manipulation des URLs. Le code fourni illustre comment vérifier l'intégrité des URLs et générer des liens signés pour la navigation. Une solution simple et efficace pour sécuriser les liens de pagination dans une application Symfony.

Mastering Symfony Rate Limiting: Compound Limits done right | by Nicolas Jourdan | Feb, 2026 | Medium

Dans cet article, l’auteur explique comment utiliser correctement le rate limiting dans des API Symfony en passant d’une simple limite unique à l’utilisation du Configurable Compound Rate Limiter de Symfony 7.3, qui permet de combiner plusieurs contraintes (par exemple une limite courte pour des pics d’activité et une limite longue pour éviter une charge soutenue) de manière déclarative dans la configuration plutôt que dans le code, avec pour bénéfices des en-têtes cohérents, une orchestration interne centralisée et une meilleure maintenabilité ; il détaille aussi comment externaliser l’application des limites via un event listener et des attributs pour garder les contrôleurs propres tout en soulignant les points d’attention (backend de stockage, surveillance des 429, etc.).