Longhorn PHP 2026
Monday, 19 October 2026Last week, I attended the Longhorn PHP conference in Austin, Texas, for the second year in a row. Alongside catching up with familiar faces, I also had the chance to interact with and learn from developers that I hadn't met before.
The two-day conference featured workshops on Thursday, and then talks on Friday. I led a workshop on Thursday afternoon and then gave a talk on Friday following lunch.
Thursday
For Thursday's workshops, attendees could choose either two half-day workshops or one full-day workshop. Since I was slated to lead a workshop in the afternoon, I couldn't attend the full-day workshop. For the morning session I chose to attend Alena Holligan's "One Source of Truth for Requirements, Code, Documentation, and Tests", where I learned all about advanced ways to use OpenAPI specs and integrate them with other tools.
My workshop
In the afternoon, I led my workshop, "Creating new PHP extensions in Rust". I think overall it went fairly well, though there were a few small hiccups.
The first issue that came up actually arose Thursday morning at breakfast, when another workshop organizer suggested that it was not safe to assume that all workshop participants had access to Docker on their machines. Thankfully, everyone who attended my workshop had access to Docker, but in the future I'll be sure to make it clear to attendees in advance that they need to be able to use Docker.
The second issue was out of my control: Rust 1.99.1 was released right before the workshop started. To ensure that everyone was using the same version of Rust, I had to rebuild my own Docker image, which took some time.
The biggest issue was a logic error on my part: in the example extension we
were building throughout the workshop, I neglected to handle readonly class
properties correctly. Despite working on the extension for months, I failed to
notice that the constructor implementations were wrong. Something to improve for
next time.
I'm not yet sure if I want to release the workshop code publicly, but over the coming weeks I'm planning to write some blog posts about RSPHP, a set of Rust crates that make it easier to create PHP extensions in Rust. The workshop code was built using RSPHP, rather than an alternative such as ext-php-rs, because I didn't want to abstract away too much of the detail of the Zend ABI.
Friday
Friday was the day of talks. Given that there was only one day of talks at the conference this year, I opted not to spend any time in the "hallway track" and attended a session in each block. Those were:
- Opening Keynote: "PHP is People: The Foundation, the Community, and You" from Elizabeth Barron
- "Parallel Futures: Unlocking Multithreading in PHP" from Florian Engelhardt
- "Onboard like a PHP Staff Engineer" from Lincoln Russell
- My own talk, discussed below
- "How Tetris Made Me a Better Programmer" from Len Woodward
- "Code Review: For Me & You" from Steve Grunwell
- Closing keynote: "The Commit You Can't Take Back: Conscience in a Career That Builds the Future" from Eric Mann
Aside from my own talk (obviously), I had a hard time choosing between sessions, because they all sounded so interesting. I'm glad they were recorded, and hopefully I'll have the chance to watch the talks I couldn't see in person.
My talk
At Longhorn, I presented an updated version of my talk, "PHP 8.6: The Inside Scoop," which I had most recently presented at PHP Tek in May. An updated version of the slides can be found here on my site.
Aside from spotting a single-character typo towards the end of the talk, everything went smoothly. I may have ended the talk a few minutes early, but early is better than late, and last year I ran significantly over my allotted time.
Looking ahead
Next month, I'll be presenting my talk about PHP 8.6 at MergePHP. See the details on the MergePHP site. Hopefully I don't run into the internet issues that I encountered last year.