# Kévin THÉRAGE | Symfony Lead Developer (Expert Symfony 7 Certified) > Kévin THÉRAGE – Symfony Lead Developer, Expert Symfony 7 Certified. Technical blog on Symfony, PHP, web development with tutorials, best practices and expert advice for developers. - [Construire un assistant de code review RAG avec PHP, Ollama et Qdrant](https://ktherage.github.io/fr/blog/2026/building-a-rag-powered-code-review-assistant/feed.md): Demandez à un LLM de review votre code et vous obtiendrez des conseils génériques. Donnez-lui 10 000 code reviews du Core Symfony en référence — et il produira des reviews qui sonnent comme si nicolas-grekas et stof avaient relu votre PR. Voici comment j'ai construit un pipeline RAG en 100% PHP pour y parvenir. - [Le cache qui ne fonctionnait pas : une histoire de sérialisation chez Symfony](https://ktherage.github.io/fr/blog/2026/le-cache-qui-ne-fonctionnait-pas/feed.md): Les logs disaient que le cache fonctionnait. Le filesystem pouvait en témoigner. Voici comment une Closure cachée dans getInfo(), une gestion d'exception silencieuse, et une valeur de retour ignorée ont créé un parfait cauchemar silencieux. - [Gérer l'isolation de PHPStan 1 et l'angle mort de PHPUnit 13](https://ktherage.github.io/fr/blog/2026/dealing-with-isolated-phpstan-1-and-the-phpunit-13-blindspot/feed.md): Isoler PHPStan dans un sous-dossier séparé est une excellente idée pour éviter l'enfer des dépendances—jusqu'à ce que vous passiez à PHPUnit 13 et que votre pipeline d'analyse statique devienne complètement aveugle. Voici comment y remédier. - [Ubuntu 25.10 : La mise à jour qui a brické mes conteneurs Docker Java](https://ktherage.github.io/fr/blog/2026/ubuntu-25-10-docker-java-cgroupv2-crash/feed.md): Après la mise à jour de mon système d'exploitaion d'Ubuntu 24.04 vers 25.10, mon conteneur Docker selenium/standalone-chrome s'est mis à planter avec un NullPointerException incompréhensible. Voici mon histoire. - [Mon EventSubscriber masquait les erreurs, voici pourquoi](https://ktherage.github.io/fr/blog/2026/my-eventsubscriber-silenced-errors/feed.md): Mon EventSubscriber de liste blanche de routes levait des exceptions AccessDenied dans les logs sans raison apparente. Voici comment j'ai découvert qu'il cachait en réalité la véritable erreur en coulisses. - [Déboguer le .gitignore de Git : Pourquoi la liste blanche dans les sous-répertoires échoue](https://ktherage.github.io/fr/blog/2026/gitignore-blacklisting-whitelisting/feed.md): En utilisant .gitignore pour garder votre projet propre, il est facile de cacher accidentellement des fichiers importants dans les sous-répertoires. Voici comment déboguer et résoudre ce problème courant. ## Pages - [About me](https://ktherage.github.io/fr/about-me/feed.md) - [Legal](https://ktherage.github.io/fr/legal/feed.md) - [Tags](https://ktherage.github.io/fr/tags/feed.md) ## Full content - [Complete site (Markdown)](https://ktherage.github.io/fr/blog/2026/feed.md)