How PHP Attributes Changed the Way I Write Livewire
Bert De Swaef shows how PHP attributes made his Livewire components easier to read by attaching validation, URL sync, and event listeners directly to the properties and methods they belong to. Nice piece on how attributes reduce mental overhead, improve IDE support, and make components feel more self-documenting. Read more
Symfony: The Fast Track, now in nine languages
Earlier this week, I announced the Symfony 8.1 edition of The Fast Track. If you made it to the end of that post, you read that the book was available in five languages. That line is already out of date, and I could not be happier about it. The Symfony 8.1…
PHP Through a Screen Reader: Small Syntax Choices That Matter
I'm a backend developer, and PHP is my main language; it is also my favorite one. I've been developing in PHP since 2008, and today, when I start a web project, I choose PHP proudly, because I know what works well for me. There is one particularity in my developer experience: I'm totally blind from birth. So I use a screen reader, a tool that sends information to speech and/or a Braille display. Of course, blind programmers are not a single organism with a shared configuration file. We use…
Symfony: The Fast Track, now for Symfony 8.1
In November 2019, at SymfonyCon Amsterdam, I published "Symfony 5: The Fast Track"; a book that teaches Symfony the way I like to learn: by building a real application, one Git commit at a time, from the very first composer install to production deployments,…
New in Symfony 8.1: Misc Improvements (Part 2)
In addition to the main features announced in previous posts of this series, Symfony 8.1 includes many smaller improvements that make day-to-day work easier. This post highlights a second batch of them. Build Semaphores on Any Lock Backend…
Caching get_certificate lookups in Caddy
Mattias open sourced a small Caddy module that caches get_certificate HTTP lookups, avoiding a backend fetch on every TLS handshake. A nice write-up on the problem, the design, and the trade-offs. Read more
The ghost domain problem in DNS, and what we're doing about it
A good write-up on the ghost domain problem in DNS: domains removed from a registry can still appear healthy to uptime checkers because recursive resolvers keep stale delegations warm. The Oh Dear team explains the edge case and how they're tightening their resolver setup to reduce that blind spot. Read more
A Week of Symfony #1015 (June 8–14, 2026)
This week, we celebrated the SymfonyOnline June 2026 conference. In addition, we published a new case study showcasing how Symfony helps power the rental real estate market. Lastly, we continued publishing articles about new features in Symfony and Twig.…
Multi-Agent Orchestration in Laravel: When You Actually Need It
A practical take on multi-agent setups in Laravel: another agent only earns its place when it needs its own model, tools, or instructions. Good piece on delegation tradeoffs, context handoff, and how to test routing before it becomes an expensive latency tax. Read more
#[RouteParameter] Does Not Bind Your Model
Michael Dyrynda explains a subtle Laravel gotcha: #[RouteParameter] only reads the current route parameter value, it does not perform implicit model binding. Good reminder that the controller signature still matters when you expect a bound model inside a form request. Read more
New in Symfony 8.1: Misc Improvements (Part 1)
In addition to the main features announced in previous posts of this series, Symfony 8.1 includes many smaller improvements that make day-to-day work easier. This post highlights the first batch. Convert Between UUIDv7 and UUIDv4…