phpday Verona 2026

In May 2026 I had the pleasure of speaking at phpday in Verona.

It was my first time at the conference, and my first time in this part of Italy. phpday is one of those events I had heard a lot about from other speakers over the years, usually in the form of "you should really try to get to that one." Having finally made it over, I can see why it has that reputation.

Good talks, a very friendly crowd, and a wonderful setting for history and/or pizza nerds. There are worse places to spend a few days talking about PHP than Verona!

The Talk

Getting into the swing of it
Getting into the swing of it

I spoke about idempotency, with my talk Avoiding Déjà Vu: Building Resilient APIs with Idempotency.

Idempotency is a funny topic to bring to conferences. It is not, on paper, one of the great crowd-pleasers. Nobody sees the word "idempotency" on a schedule and starts elbowing people out of the way to get a front-row seat.

But it keeps turning out to be a useful subject.

At each conference where I have given this talk, there has been a good mix of people who either have not really come across the concept before, or have implemented something like it and are not entirely sure whether they have done it properly. That tends to lead to good questions afterwards, and phpday was no exception.

The conversations carried on through the coffee breaks across both days, which is usually the best sign that a talk has connected with the people it needed to connect with.

Standout Talks

Roberto's OIDC theatre
Roberto's OIDC theatre

As ever, the hardest part of a two-track conference is choosing which room to be in. I missed plenty, but a few talks stood out from the ones I did manage to catch.

  • Roberto Butti's session on OIDC and authentication took a very different route through a famously awkward topic. Rather than leaning on a deck full of sequence diagrams, Roberto staged a short play with members of the conference team to show how the token exchange actually works. It could easily have tipped into gimmick territory, but it really worked. It was one of the clearest explanations I have seen of an authentication flow, and a nice reminder that even very technical topics can benefit from a bit of theatre!

  • Gary Hockin opened the conference with his keynote, It Depends. The phrase ended up echoing through the rest of the event, sometimes deliberately and sometimes because developers are physically incapable of answering any question without using it. It was a fun and thoughtful look at the decisions we make every day, and the way we often rationalise those decisions after the fact. A very good tone-setter for the conference.

  • Derick Rethans walked us through new Xdebug features, including the ability to jump into running scripts. Xdebug remains one of those tools I know I should reach for more often than I do, and Derick's talks always have the slightly uncomfortable effect of reminding me how much useful functionality I have been ignoring.

  • Dan Leech's talk on value objects was another highlight. Value objects are one of those concepts that can easily end up sounding either more complicated or more obvious than they actually are. Dan made the case very clearly, and was properly funny along the way. One of those talks where you find yourself nodding along, then making a mental note to go home and tidy up half your codebase.

  • The lightning talks were also unusually strong. Lightning talks can be a mixed bag, by nature, but this was a packed hour with a really high hit rate. There were sessions on Composer's new malware protection, a useful crash course on enums, and some practical advice on getting started with testing.
    Giulio Pecorella also did a stand-up comedy routine about PHP, and it's similarity to Italian grannies & pension fraud, which sounds like something that should not work and yet somehow absolutely did. It gave the room a real lift going into the panel session.

  • The "Future of PHP" panel was a frank discussion about possible new language features, grounded in recent RFCs and the direction the language might take next. One point from Volker Dusch particularly stuck with me: that it is often better for the language to add reasonably generic tools that can be combined and reused in userland, rather than burning new keywords on very specific implementations.
    That feels like a useful way to think about language design more broadly. Give people good building blocks, and resist the temptation to solve every use case directly in the language itself.

  • Gina Banyard closed the conference with a keynote on backwards compatibility. It was a wide-ranging tour that somehow got from the history of refrigeration to the Boeing 737 MAX, with a detour through the complexity of Japan's electrical grid.
    That description undersells it, making it sound like three different talks in a trenchcoat posing as one, but it worked really well! The thread running through it was the long-term cost of the decisions we make now, and the systems future maintainers inherit as a result. A thoughtful way to close out the event.

Gina's closing keynote
Gina's closing keynote

The Hallway Track

As usual, some of the best parts of the conference happened between the talks.

The hallway track was excellent: catching up with people I normally only see online, meeting new folks, and having the sort of detailed technical conversations that are hard to reproduce over Slack or a video call.

Gary is right again
Gary is right again

That is still the thing I value most about in-person events. The talks are the reason everyone shows up, but the unplanned conversations are often the bit you remember afterwards.

Sometimes you bump into exactly the right person at exactly the right time. Sometimes you just end up talking nonsense over coffee. Both are useful, in their own way.

Verona

The Arena
The Arena

And then there was Verona.

The Arena dominates the centre of the city. It is a Roman amphitheatre, older than the Colosseum in Rome, and still very much in active use. There were operas being staged while I was there, and the energy around the place in the evenings was brilliant: crowds gathering, music drifting out into the surrounding piazzas, the whole area buzzing in a way I had not quite expected.

Casa di Giulietta
Casa di Giulietta

No visit to Verona is apparently complete without stopping by Casa di Giulietta, Juliet's house, where a steady queue of visitors waits to take a photo on the famous balcony.

In the courtyard below is the bronze statue of Juliet, and tradition holds that rubbing her right breast brings luck in love. The bronze there is polished to a bright shine from decades of hopeful hands. It reminded me very much of Dublin's Molly Malone statue, which has suffered a similar fate. I am not sure either tradition reflects brilliantly on humanity, but at least we are consistent.

The real joy of Verona though was just wandering around. It is one of those cities where you turn a corner expecting nothing in particular and suddenly find yourself in a piazza lined with statues and frescoes that are older than most countries. Narrow streets open into grand squares. Small side alleys lead to churches, courtyards, old walls, and the occasional place that makes you stop and mutter "ah here, that's a bit much" at a building.

Entrance hall of the Biblioteca Capitolare
Entrance hall of the Biblioteca Capitolare

One of those wandering moments led me to the Biblioteca Capitolare, the oldest continuously operating library in the world. This was a real treat. An entrance hall with floor-to-ceiling classic books set the scene well. Last remaining copies of certain Roman legal texts, early prints of The Divine Comedy and The Decameron, and books that still contain shrapnel from American bombing during the Second World War.

The Divine Comedy
The Divine Comedy
The Decameron
The Decameron

To stand a few feet away from objects with that much history attached is something else entirely.

It was an unplanned highlight of the trip, and a useful reminder that "wander around for a bit and see what happens" is a great way to stumble upon hidden gems you'd not otherwise have sought out.

An aging relic. Also, the Arena
An aging relic. Also, the Arena

There is something I really enjoy about having a tech conference in a city this old. You spend the day talking about language features, backwards compatibility, APIs and tooling, then step outside into a place that has been dealing with maintenance and legacy systems for a couple of thousand years. It's a nice sense of perspective when temperatures run hot about the issues of the day (generics!)

Final Thoughts

Huge credit to the GrUSP team for putting on such a strong event.

GrUSP team and speakers
GrUSP team and speakers

Two full days of high-quality talks, a warm and engaged crowd, excellent hallway conversations, and a city that added something genuinely special to the whole experience.

Since I started speaking at conferences, phpday has come up again and again as one of the events worth getting to. That can be a dangerous level of expectation to carry into anything, but it lived up to the billing.

My first time at phpday, but hopefully not my last!

A decent conference swag haul!
A decent conference swag haul!

Share This Article

Related Articles


ConFoo 2026, Montréal

My experience speaking at ConFoo 2026 in Montréal — two talks, a brilliant technical crowd, some excellent sessions, and a city that is genuinely something else in winter.

Build Stuff 2025, Vilnius, Lithuania

My experience speaking at Build Stuff 2025 in Vilnius. A look at the brilliant sessions, the unique speaker support, and the festive atmosphere of Lithuania in December!

Redirecting Test Emails Safely in Laravel

A small Laravel feature that prevents a big headache: how Mail::alwaysTo() keeps staging and demo environments from accidentally emailing real users.

More