Quotidien Shaarli

Tous les liens d'un jour sur une page.

Aujourd'hui - July 13, 2026

EasyAdmin : créer un filtre custom pour vos listes Symfony • Lecode

Ce tutoriel explique comment créer un filtre personnalisé pour EasyAdmin dans Symfony, lorsque les filtres natifs ne suffisent pas. L'auteur prend l'exemple concret d'un filtre "À la une" pour les billets d'un blog, qui nécessite une logique complexe (plage de dates active avec opérateurs combinés). Il détaille le processus en deux étapes : d'abord l'implémentation de l'interface FilterInterface avec la méthode apply() pour construire la requête SQL, puis la création d'un FilterType pour le formulaire.

L'article souligne que les filtres natifs (comme ChoiceFilter ou NullFilter) couvrent la plupart des cas simples, mais qu'un filtre custom devient nécessaire pour des conditions SQL avancées. Il montre comment structurer la classe du filtre en utilisant le FilterTrait et une méthode statique new() pour la configuration, tout en illustrant avec un exemple complet de filtre gérant à la fois des états binaires et des plages de dates.

EasyAdmin : Sécuriser l'admin avec 3 couches Symfony natives • Lecode

Ce billet explique comment sécuriser un back-office EasyAdmin sans utiliser setPermission(), en s'appuyant sur trois couches de sécurité natives à Symfony. L'approche combine access_control par host, l'attribut #[IsGranted] au niveau des contrôleurs et des gardes personnalisées dans les actions sensibles, offrant une sécurité robuste et indépendante d'EasyAdmin.

La première couche repose sur access_control dans la configuration Symfony, restreignant l'accès à l'admin via un sous-domaine dédié (ex: admin.lecodeestdanslepre.fr) avec le rôle ROLE_ADMIN. Cette méthode agit comme un premier filet de sécurité avant même l'arrivée de la requête au contrôleur. La deuxième couche utilise #[IsGranted('ROLE_ADMIN')] sur chaque contrôleur pour doubler la vérification côté Symfony, garantissant que seules les actions autorisées sont exécutées.

Enfin, une troisième couche de sécurité est implémentée directement dans les actions métier pour des contrôles plus fins, comme la validation CSRF ou la vérification de l'état d'une entité. Ces trois niveaux de sécurité, tous issus de Symfony, assurent une protection complète tout en restant modulaires et adaptables à d'autres solutions que EasyAdmin.

In defense of not understanding your codebase

L’article défend l’idée que dans les grands systèmes logiciels, une compréhension partielle de la base de code est non seulement inévitable, mais aussi suffisante pour travailler efficacement. L’auteur conteste la vision de Peter Naur, qui prône une maîtrise totale du code via une "théorie du programme", arguant que cette approche est irréaliste pour les systèmes complexes et à forte rotation d’équipes. Il souligne que les grands systèmes accumulent des cas particuliers impossibles à recréer de zéro, et que leur maintenance repose souvent sur une reconstruction progressive plutôt que sur une refonte complète.

L’auteur illustre son propos en expliquant que les équipes doivent souvent reprendre des bases de code abandonnées, en partant d’une compréhension locale avant d’étendre leur maîtrise. Il insiste sur le fait que la culture du "tout comprendre" est davantage valorisée dans les discussions en ligne, alors qu’elle est inadaptée aux environnements industriels à grande échelle. Selon lui, l’efficacité repose davantage sur la capacité à naviguer et modifier localement le code que sur une vision globale inaccessible.