Quotidien Shaarli
August 17, 2025
DuckDB est un système de gestion de base de données relationnelle (SGBD) en code ouvert, conçu pour être léger, rapide et analytique, optimisé pour les requêtes complexes sur des jeux de données de taille moyenne à grande directement depuis un seul fichier. Contrairement aux bases de données traditionnelles comme PostgreSQL ou MySQL, DuckDB fonctionne en mode embarqué (sans serveur), ce qui le rend idéal pour les analyses locales, les applications intégrées ou les environnements où la simplicité et la performance sont cruciales. Il prend en charge le langage SQL standard, offre des fonctionnalités avancées comme les jointures, les agrégations, les fenêtres analytiques, et intègre des extensions pour le traitement de données par lots ou en mémoire. Particulièrement apprécié dans les domaines de la science des données et de l’analyse interactive, DuckDB se distingue par sa capacité à traiter efficacement des fichiers Parquet ou CSV, tout en restant portable et facile à déployer. Son architecture sans dépendance externe et sa compatibilité avec de nombreux langages (Python, R, Java, etc.) en font un outil polyvalent pour les développeurs et les analystes cherchant à manipuler des données sans infrastructure lourde.
L’article explique comment moderniser un système de logging dans Symfony en remplaçant les déclencheurs (triggers) traditionnels par les événements Doctrine, une approche plus flexible et maintenable. L’auteure, Jinal Solanki, détaille les limites des triggers (dépendance à la base de données, manque de souplesse) et propose une solution basée sur les listeners Doctrine pour intercepter les opérations CRUD (Create, Read, Update, Delete) directement dans le code PHP. Cette méthode permet de centraliser la logique de logging, de faciliter les tests unitaires et d’éviter les effets de bord liés aux triggers SQL. Elle illustre la mise en œuvre avec des exemples concrets : création d’un EventSubscriber pour écouter les événements prePersist
, preUpdate
et preRemove
, puis enregistrement des changements dans une table dédiée. L’avantage principal est une meilleure intégration avec le code métier, une maintenance simplifiée et une indépendance vis-à-vis du SGBD. Une solution idéale pour rendre le logging évolutif et cohérent dans une architecture Symfony.
L’article présente l’utilisation de Make pour simplifier et standardiser les commandes courantes dans un projet Symfony, surtout en environnement Docker. L’auteur partage ses Makefiles personnalisés, qui permettent de lancer des tâches comme l’installation des dépendances (make composer
), l’exécution des tests (make test
), l’analyse statique (make static-analysis
), ou encore la gestion de la base de données (make db-reset
), le tout avec des paramètres optionnels pour l’environnement (env=prod
) ou des arguments supplémentaires (arg=--testdox
). Grâce à Make, les commandes Docker complexes deviennent simples et documentées (ex: make qa
pour lancer la vérification de code, l’analyse statique et les tests en une seule commande). L’article propose trois versions de Makefile : pour Docker Compose, Docker seul, et PHP natif, inspirées du projet symfony-docker. L’objectif est d’améliorer la productivité en évitant de retaper des commandes longues et en centralisant la documentation des tâches disponibles. Une solution élégante pour uniformiser les workflows entre projets Symfony.