Sign in

Grégoire Pineau

@lyrixx.bsky.social
577 followers 44 following 45 posts

DevOps @jolicode & @redirectionio ; Core Team @symfony ; Github: github.com/lyrixx ; X: x.com/lyrixx

PostsRepliesMedia
Grégoire Pineau @lyrixx.bsky.social · 29/09/2026
consul-php-sdk 5.4.0 is out! It now covers the whole Consul CE HTTP API: ACL, Config, Connect, Operator, Snapshot… with all documented options (blocking queries, filtering…). The code base has also been modernized for PHP 8.2+. github.com/FriendsOfPHP...
github.com
Release v5.4.0 · FriendsOfPHP/consul-php-sdk
This release covers the whole Consul CE HTTP API and modernizes the code base. New features Add ACL, Config, Connect, Coordinate, DiscoveryChain, Event, Operator, Peering, PreparedQuery, Snapshot ...
001
Grégoire Pineau @lyrixx.bsky.social · 25/09/2026
And it got a brand new website jolitypo.jolicode.com
jolitypo.jolicode.com
JoliTypo demo - Micro-typography fixer for HTML contents
Try JoliTypo, the PHP micro-typography fixer, right in your browser.
010
Reposted by Grégoire Pineau
Grégoire Pineau @lyrixx.bsky.social · 27/08/2026
I have upgraded my Async, Messenger and Mercure Demo Application: * PHP 8.5. * Symfony 8.1 * More tests * Better UI The whole thing is powered by Docker, FrankenPHP and our Docker starter. github.com/lyrixx/async...
github.com
GitHub - lyrixx/async-messenger-mercure: Demo for Symfony Messenger + Mercure
Demo for Symfony Messenger + Mercure. Contribute to lyrixx/async-messenger-mercure development by creating an account on GitHub.
002
Reposted by Grégoire Pineau
Grégoire Pineau @lyrixx.bsky.social · 07/09/2026
I have upgraded my Async, Messenger and Mercure Demo Application: * PHP 8.5. * Symfony 8.1 * More tests * Better UI The whole thing is powered by Docker, FrankenPHP and our Docker starter. github.com/lyrixx/async...
github.com
GitHub - lyrixx/async-messenger-mercure: Demo for Symfony Messenger + Mercure
Demo for Symfony Messenger + Mercure. Contribute to lyrixx/async-messenger-mercure development by creating an account on GitHub.
061
Reposted by Grégoire Pineau
Grégoire Pineau @lyrixx.bsky.social · 08/09/2026
I have upgraded another demo! my SF Observability Demo Application If you are lost with Grafana, Loki, Elasticsearch, Kibana, Clickouse, or Redash, this demo is made for you 🔥 You'll get a fully provisioned o11y platform in one command, with beautiful dashboard 📊 github.com/lyrixx/symfo...
github.com
GitHub - lyrixx/symfony-observability-demo: Symfony Application to demonstrate how to configure observability layer
Symfony Application to demonstrate how to configure observability layer - lyrixx/symfony-observability-demo
052
Reposted by Grégoire Pineau
Grégoire Pineau @lyrixx.bsky.social · 09/09/2026
beberlei/metrics v3.0.0 is out 🎉🔥 • PHP 8.4+, strictly typed, tags everywhere • 4 new backends: OpenTelemetry, InfluxDB v2, AWS CloudWatch, Chain • Symfony bundle with #[Target] autowiring • Full Demo app with provisioned Grafana dashboards jolicode.com/blog/introdu...
jolicode.com
Introducing beberlei/metrics v3.0.0
Since 2012, beberlei/metrics has been doing one small job well: giving PHP applications a single, consistent API to send metrics (counters, timings, gauges...) without tying the calling code to a spec...
053
Grégoire Pineau @lyrixx.bsky.social · 09/09/2026
beberlei/metrics v3.0.0 is out 🎉🔥 • PHP 8.4+, strictly typed, tags everywhere • 4 new backends: OpenTelemetry, InfluxDB v2, AWS CloudWatch, Chain • Symfony bundle with #[Target] autowiring • Full Demo app with provisioned Grafana dashboards jolicode.com/blog/introdu...
jolicode.com
Introducing beberlei/metrics v3.0.0
Since 2012, beberlei/metrics has been doing one small job well: giving PHP applications a single, consistent API to send metrics (counters, timings, gauges...) without tying the calling code to a spec...
053
Reposted by Grégoire Pineau
Damien Alexandre @damienalexandre.fr · 08/09/2026
Les événements techniques qui m’ont formé·e risquent de disparaître, faute de sponsors et de billets vendus. Si votre entreprise en profite, rendez-le leur : sponsorisez, achetez des places, adhérez. lettreouverte.afup.org
lettreouverte.afup.org
Lettre ouverte pour sauver les événements tech en France
Les événements tech français risquent de disparaître. Sponsorisez, achetez des places, adhérez.
002
Grégoire Pineau @lyrixx.bsky.social · 08/09/2026
I have upgraded another demo! my SF Observability Demo Application If you are lost with Grafana, Loki, Elasticsearch, Kibana, Clickouse, or Redash, this demo is made for you 🔥 You'll get a fully provisioned o11y platform in one command, with beautiful dashboard 📊 github.com/lyrixx/symfo...
github.com
GitHub - lyrixx/symfony-observability-demo: Symfony Application to demonstrate how to configure observability layer
Symfony Application to demonstrate how to configure observability layer - lyrixx/symfony-observability-demo
052
Reposted by Grégoire Pineau
JoliCode @jolicode.com · 07/09/2026
Migrating from Webpack Encore to Vite with Reprise ⚡ 75s build → 15s 🚀 583 npm packages removed 🎉 Hot reload finally working 💪 But watch out for hidden webpackisms! Our migration story on a large Symfony project: jolicode.com/blog/migrat... #symfony
jolicode.com
Migrating from Webpack Encore to Vite with Reprise
We maintain a high-traffic project for one of our clients: 5 websites served by a single Symfony application, 800 Twig templates, and a React + Tailwind front end that has been built by Webpack
051
Grégoire Pineau @lyrixx.bsky.social · 07/09/2026
I have upgraded my Async, Messenger and Mercure Demo Application: * PHP 8.5. * Symfony 8.1 * More tests * Better UI The whole thing is powered by Docker, FrankenPHP and our Docker starter. github.com/lyrixx/async...
github.com
GitHub - lyrixx/async-messenger-mercure: Demo for Symfony Messenger + Mercure
Demo for Symfony Messenger + Mercure. Contribute to lyrixx/async-messenger-mercure development by creating an account on GitHub.
061
Grégoire Pineau @lyrixx.bsky.social · 27/08/2026
I have upgraded my Async, Messenger and Mercure Demo Application: * PHP 8.5. * Symfony 8.1 * More tests * Better UI The whole thing is powered by Docker, FrankenPHP and our Docker starter. github.com/lyrixx/async...
github.com
GitHub - lyrixx/async-messenger-mercure: Demo for Symfony Messenger + Mercure
Demo for Symfony Messenger + Mercure. Contribute to lyrixx/async-messenger-mercure development by creating an account on GitHub.
002
Reposted by Grégoire Pineau
JoliCode @jolicode.com · 18/08/2026
Trouver des contenus qui se ressemblent sans passer par un LLM ? SimHash fait ça depuis 2002 😋 Dans cet article, @lyrixx.bsky.social vous montre comment découper un texte en shingles, compter les votes et comparer des milliers de pages en SQL 🚀 jolicode.com/blog/simhas... #simhash
jolicode.com
SimHash : trouver les pages qui se ressemblent
Il y a quelques semaines, j'ai eu besoin de détecter du contenu dupliqué dans le crawler de redirection.io. Pas du dupliqué à la virgule près, ça c'est facile, mais du dupliqué « en gros, c'est
055
Reposted by Grégoire Pineau
JoliCode @jolicode.com · 06/07/2026
📚 Au cas où vous les auriez ratés, nos dernières pépites : 🖥️ Comprendre les TTY et PTY avec Symfony Process jolicode.com/blog/compre... 🔍 Améliorer l'accessibilité d'un site existant jolicode.com/blog/amelio... 🔥 Profiler un consumer avec Blackfire jolicode.com/blog/profil... 💛
jolicode.com
Profiler un consumer avec Blackfire
Quand on parle de profiling PHP avec Blackfire, on pense généralement à une requête HTTP : un clic sur l'extension navigateur, et hop, le profil apparaît. Mais que faire quand le code à profiler
042
Reposted by Grégoire Pineau
JoliCode @jolicode.com · 02/07/2026
Comment mesurer les performances d'une commande Symfony qui boucle indéfiniment ? @lyrixx.bsky.social vous explique comment utiliser les signaux POSIX pour déclencher @blackfire.io au bon moment, sans interrompre le traitement 💡 🤯 jolicode.com/blog/profil... #posix #astuce #protip
jolicode.com
Profiler un consumer avec Blackfire
Quand on parle de profiling PHP avec Blackfire, on pense généralement à une requête HTTP : un clic sur l'extension navigateur, et hop, le profil apparaît. Mais que faire quand le code à profiler
033
Reposted by Grégoire Pineau
JoliCode @jolicode.com · 15/06/2026
Enfin tout comprendre des TTY et PTY avec le composant Process de Symfony 🖥️ 🙌 Dans ce nouvel article, @lyrixx.bsky.social vous explique pourquoi les couleurs disparaissent quand vous lancez une commande via PHP et comment en prendre le contrôle 💡 jolicode.com/blog/compre... #php #cli
jolicode.com
Comprendre (enfin) les TTY et PTY avec le composant Process de Symfony
Vous est-il déjà arrivé de lancer une commande (composer, rsync ou une commande Symfony) directement dans votre terminal pour y admirer de jolies barres de progression colorées, mais de constater
042
Reposted by Grégoire Pineau
JoliCode @jolicode.com · 09/06/2026
Nouvel article sur l'amélioration de la sécurité de vos GitHub Actions avec Zizmor 🌈 jolicode.com/blog/amelio... Cet outil détecte les vulnérabilités d'injection de template, les fuites de credentials, les permissions excessives et bien d'autres problèmes de sécurité 🔒
jolicode.com
Améliorer la maintenance de vos workflows GitHub
Les failles de sécurité liées à la supply chain sont de plus en plus courantes. En tant que mainteneur d'un projet open source populaire, l'enjeu est de taille. Votre code est déployé sur de
153
Grégoire Pineau @lyrixx.bsky.social · 30/03/2026
Do you work on (legacy) projects that use a lot of static properties? This pull request could help you to debug more quickly. github.com/symfony/symf....
github.com
[VarDumper] Dump class-strings as class stubs with source location and static properties by lyrixx · Pull Request #63810 · symfony/symfony
Q A Branch? 8.1 Bug fix? no New feature? yes Deprecations? no Issues License MIT When working on a projet full a static properties (Yes, I know! Legacy project...) this will be a ...
000
Reposted by Grégoire Pineau
Grégoire Pineau @lyrixx.bsky.social · 27/03/2026
Je viens de mettre en ligne la présentation que j'ai eu l'honeur de donner au #symfony_live Embeddings : Symfony AI en pratique s.lyrixx.info/ai-embedding
s.lyrixx.info
Embeddings : Symfony AI en pratique
On parle beaucoup d’IA, mais rarement de ce qu’on peut *vraiment* en faire dans un projet PHP. Avec Symfony AI, il devient enfin possible de manipuler …
084
Grégoire Pineau @lyrixx.bsky.social · 27/03/2026
Je viens de mettre en ligne la présentation que j'ai eu l'honeur de donner au #symfony_live Embeddings : Symfony AI en pratique s.lyrixx.info/ai-embedding
s.lyrixx.info
Embeddings : Symfony AI en pratique
On parle beaucoup d’IA, mais rarement de ce qu’on peut *vraiment* en faire dans un projet PHP. Avec Symfony AI, il devient enfin possible de manipuler …
084
Grégoire Pineau @lyrixx.bsky.social · 12/01/2026
Towards better Symfony/Messenger interoperability? I hope so! github.com/symfony/symf...
github.com
[Messenger] Add support for custom `type` in `Serializer` Transport by lyrixx · Pull Request #63061 · symfony/symfony
Q A Branch? 8.1 Bug fix? no New feature? yes Deprecations? no Issues Fix #63060 License MIT Description When two applications communicate through a message broker (for example Rab...
050
Reposted by Grégoire Pineau
JoliCode @jolicode.com · 04/12/2025
L'astuce du jour : utilisez MITMProxy pour inspecter les appels HTTP(s) d'un logiciel ou d'une application, même avec le HTTPS activé 🔍🔒 Par @lyrixx.bsky.social 💛 jolicode.com/blog/arrete... #protip #webdev #http
jolicode.com
Arrêtez de deviner : Interceptez vos flux HTTP(s) avec MITMProxy
Vous récupérez une codebase inconnue, vous savez qu’elle effectue des requêtes HTTP(s), mais vous ne savez pas vers où, ni ce qu'elle envoie ? C'est une situation classique. Nous allons voir
062
Reposted by Grégoire Pineau
Wouter de Jong @wouterj.bsky.social · 17/12/2025
wouterj.nl/2025/12/symfony-20-year To celebrate 20 years of Symfony, I've crunched a bunch of numbers and share some memories of Symfony development since the 2.0 release in 2011.
wouterj.nl
Symfony 20 year!
This year, Symfony celebrates its 20 year anniversary. Let’s dive into some statistics of years of making web development history.
074
Reposted by Grégoire Pineau
JoliCode @jolicode.com · 26/11/2025
Castor 🦫 v1.1.0 is now available 🎉 - a new slug() helper - a new --castor-file option, making shebang possible - support for PHP 8.5 - update PHP version in static binaries - rework of documentation and examples - lot of fixes and DX improvements ❤️ github.com/jolicode/ca...
github.com
Release Release v1.1.0 · jolicode/castor
What's Changed Features Add a slug() function to slugify strings, by @pyrech in #743 Add support for PHP 8.5 (except for static binaries which are not available yet), by @lyrixx in #762 Displa...
022
Reposted by Grégoire Pineau
JoliCode @jolicode.com · 14/11/2025
💣 Grosse annonce 😋 Nous dévoilons aujourd'hui notre Bundle #Symfony de gestion de médias 🎉 JoliMediaBundle est notre solution idéale pour gérer la contribution, le stockage et l'affichage de médias dans une application web moderne 🙏 À découvrir : jolicode.com/blog/jolime...
jolicode.com
JoliMediaBundle, un nouveau bundle de médias pour vos projets Symfony
C'est une petite histoire qui commence au début de l'année lorsque, en relisant un article que nous sommes sur le point de publier sur le blog de JoliCode, je remarque une image dont la qualité
01410
Reposted by Grégoire Pineau
JoliCode @jolicode.com · 10/10/2025
Nous profitons du #ForumPHP de l'AFUP pour fêter la première version stable de Castor 🦫 ! Notre task runner full PHP sort en version 1.0 aujourd'hui 🎉 Utilisateurs de Makefile, de scripts shell spaghetti ou pire, nous vous conseillons cette lecture 😉 jolicode.com/blog/le-tas...
Castor Version 1
1126
Reposted by Grégoire Pineau
Symfony @symfony.com · 28/08/2025
🙌 Remembering Ryan Weaver: Teacher, Core Team Member, Friend ➡️ symfony.com/blog/remembering-ryan-w…
27738
Reposted by Grégoire Pineau
JoliCode @jolicode.com · 25/08/2025
Découvrez Symfony AI, la nouvelle brique logicielle incontournable pour vos projets de vectorisation, #AI, #LLM, #MCP et #RAG ! Dans cet article, @lyrixx.bsky.social vous présente l'analyse des similarités de textes et l'interaction avec vos LLMs préférés ! jolicode.com/blog/symfon...
use Symfony\AI\Platform\Bridge\Gemini\Embeddings as GeminiEmbeddings; use Symfony\AI\Platform\Bridge\Gemini\PlatformFactory as GeminiPlatformFactory;  $platform = GeminiPlatformFactory::create($_SERVER['GEMINI_API_KEY']);  // Choix du modèle d'embedding $embeddings = new GeminiEmbeddings(); $text = 'Le chat est un animal domestique très apprécié.';  $response = $platform->invoke($embeddings, $text);  $vector = $response->asVectors()[0];
044
Reposted by Grégoire Pineau
JoliCode @jolicode.com · 15/07/2025
Les animations CSS au défilement d'une page web sont désormais possibles, et @kaymorey.bsky.social vous explique tout dans son dernier article ! jolicode.com/blog/scroll... Découvrez animation-timeline: scroll(); et réalisez des animations fluides ! #css #tips #animation #design
065
Reposted by Grégoire Pineau
Symfony @symfony.com · 11/07/2025
🚀 Kicking off the Symfony AI Initiative ➡️ symfony.com/blog/kicking-off-the-sy…
22219
Grégoire Pineau @lyrixx.bsky.social · 11/07/2025
We have released a new version of Castor! 🦫 What's its best feature? `castor execute some-composer/package` Example with latest release of PHP-CS-Fixer, where we don't even need PHP to run it! 🤯🤯🤯 castor.jolicode.com/getting-star...
152
Reposted by Grégoire Pineau
Loïc Caillieux @caillioux.bsky.social · 10/07/2025
🎤 Lors de la #SyliusParty, @lyrixx.bsky.social (@jolicode.com) a présenté une approche pour importer de gros volumes de données avec Symfony Messenger + Mercure, un sujet fréquent en #ecommerce Le replay : youtu.be/Auo65o8YnlI Merci encore Grégoire pour cette conférence passionnante 🙌
042
Reposted by Grégoire Pineau
Damien Alexandre @damienalexandre.fr · 25/06/2025
Hot Take 🌶️ dump(new \Exception()); is the new XDebug. #php #symfony #laravel
141
Reposted by Grégoire Pineau
Symfony @symfony.com · 29/05/2025
🌟 Symfony 7.3.0 released ➡️ symfony.com/blog/symfony-7-3-0-rele…
03316
Reposted by Grégoire Pineau
JoliCode @jolicode.com · 28/05/2025
Retrouvez @lyrixx.bsky.social à la SyliusParty organisée par @Emagma à Toulouse le jeudi 19 juin ! 🎉 Une journée 100% #Sylius, e-commerce et tech, avec des talks, une table ronde, un hackathon... 🎟️ Inscription gratuite et obligatoire sur syliusparty.emagma.fr/
Fiche de Grégoire : import de données volumineuses avec Messenger et Mercure
011
Grégoire Pineau @lyrixx.bsky.social · 19/05/2025
If you use elastica, you can use this Caster for the VarDumper. It'll add a virtual property with the content of the query, JSON encoded, and formatted:
use Elastica\Query;
use Symfony\Component\VarDumper\Caster\Caster;
use Symfony\Component\VarDumper\Cloner\AbstractCloner;
use Symfony\Component\HttpKernel\Kernel as BaseKernel;

class Kernel extends BaseKernel
{
    public function boot(): void
    {
        AbstractCloner::$defaultCasters += [
            Query::class => static function (Query $query, array $a): array {
                return [
                    ...$a,
                    Caster::PREFIX_VIRTUAL . 'query' => json_encode($query->toArray(), JSON_PRETTY_PRINT)
                ];
            },
        ];
    }
030
Reposted by Grégoire Pineau
Loïc Caillieux @caillioux.bsky.social · 15/05/2025
📣 Conférence #3 à la #SyliusParty : « Import des données volumineuses avec Messenger & Mercure » avec Grégoire Pineau @lyrixx.bsky.social, core contributor Symfony ⚙️ 📅 Toulouse, 19 juin 2025 🎟️ Inscriptions : syliusparty.emagma.fr #Sylius #Ecommerce #OpenSource #Symfony
051
Grégoire Pineau @lyrixx.bsky.social · 14/05/2025
Nice, PECL/UUID v1.3 added support for UUID V6 and V7 ! pecl.php.net/package-chan...
pecl.php.net
PECL :: uuid Changelog
011
Reposted by Grégoire Pineau
Symfony @symfony.com · 12/05/2025
🚀 New in Symfony 7.3: Explaining Security Voter Decisions ➡️ symfony.com/blog/new-in-symfony-7-3…
074
Reposted by Grégoire Pineau
JoliCode @jolicode.com · 06/05/2025
Using #Symfony, you can customize error pages. However, if your app can't boot, you'll see the ugly web server error page. To avoid this, use the new error:dump command by @pyrech.bsky.social! 💛 symfony.com/blog/new-in... #oss #opensource #contribution
symfony.com
New in Symfony 7.3: Static Error Pages (Symfony Blog)
In Symfony 7.3, you can export your error pages as static HTML so the server serves them instantly without running the app.
084
Reposted by Grégoire Pineau
Grégoire Pineau @lyrixx.bsky.social · 09/04/2025
I published a small application to compare two composer.lock files. It's built in PHP, but I didn't want to maintain a server. So it's deployed on GitHub Pages and uses WASM. lyrixx.github.io/composer-diff/
02411
Reposted by Grégoire Pineau
GromNaN @jerome.tamarelle.net · 16/04/2025
A reminder for maintainers of #PHP libraries: adding a parameter to a method of an interface causes a fatal error in all the classes that implement it. It's a BC break that should be prohibed in a minor version. In Symfony, we add the parameter virtually using phpdoc, and read it using func_get_arg.
PHP code: 

    /**
     * @param int $nbToken
     *
     * @psalm-param int<1, max> $nbToken
     */
    public function mark(string $place /* , int $nbToken = 1 */): void
    {
        $nbToken = 1 < \func_num_args() ? func_get_arg(1) : 1;
    }

Source: https://github.com/symfony/symfony/blob/01c26aa928ecc5dc42ce90268299c190c6b712ed/src/Symfony/Component/Workflow/Marking.php#L39
0112
Reposted by Grégoire Pineau
JoliCode @jolicode.com · 11/04/2025
Les extensions PHP vont connaître un grand changement similaire à l'arrivée de Composer : PIE va simplifier la diffusion et l'installation d'extensions ! Découvrez ce nouvel outil sur notre blog : jolicode.com/blog/a-la-d... #php #composer #pie #extension par @korbeil.bsky.social
jolicode.com
À la découverte de PIE, l'alternative moderne à PECL pour les extensions PHP
Récemment vous avez peut-être entendu parler de PIE, un nouveau binaire pour PHP. PIE c’est le diminutif de “PHP Installer for Extensions” et c’est donc le descendant de PECL. Pourquoi PIE ?
098
Grégoire Pineau @lyrixx.bsky.social · 09/04/2025
I published a small application to compare two composer.lock files. It's built in PHP, but I didn't want to maintain a server. So it's deployed on GitHub Pages and uses WASM. lyrixx.github.io/composer-diff/
02411
Grégoire Pineau @lyrixx.bsky.social · 08/04/2025
Why do you think about this simple tool to compare two composer.lock file? I know there are already many CLI scripts or composer plugins to do the same things (some of them can even report diff via GitGub comment 😍). But I needed many time an "online" tool to avoid installing anything locally
033
Grégoire Pineau @lyrixx.bsky.social · 02/04/2025
Are you running an old version of PHP but want to use modern functions like json_validate(), array_find() or mb_trim()? Discover symfony/polyfill. It's a galaxy of small Composer packages you can use to backport new PHP features into your project. github.com/symfony/poly...
081
Reposted by Grégoire Pineau
Damien Alexandre @damienalexandre.fr · 31/03/2025
Ça c'est du power-user 😆 Créer un type hybride le temps de migrer les données, il fallait y penser ! #doctrine #protip
032
Reposted by Grégoire Pineau
JoliCode @jolicode.com · 31/03/2025
🟠 Utilisateurs de Doctrine ORM, nous avons une astuce pour vous : une procédure complète pour migrer vos champs "array" en "json" sans aucun downtime même sur de gros volumes de données ! 🤗 ✨ jolicode.com/blog/commen... Par Grégoire #php #doctrine #symfony
jolicode.com
Comment migrer du type array vers JSON avec Doctrine
Doctrine a déprécié les types array et object en version 3. Il est temps de migrer vers un type plus interopérable, et moins sensibles au refactoring ! Vous l’aurez compris, il faut maintenant
0105
Reposted by Grégoire Pineau
JoliCode @jolicode.com · 28/03/2025
Aujourd'hui à #Symfony_Live, Grégoire présente de façon concrète comment Mercure et Messenger peuvent répondre à vos besoins de temps réel !
051
Grégoire Pineau @lyrixx.bsky.social · 28/03/2025
Je viens de mettre en ligne les slides de la conférence que j'ai pu donner au @symfony_live #symfony_live Asynchrone avec Messenger et Mercure (Demo included) s.lyrixx.info/async
s.lyrixx.info
Async avec Messenger et Mercure
Générer des PDF, des CSV, ou faire des traitements lourd lors du traitement d'une requête HTTP impacte lourdement les performances de l'application. &hellip;
173