50 episodes
- ποΈ PHP Podcast - November 12, 2026
Hosts: Joe Ferguson, Sara Golemon & Holly Schilling
A surprise RC7, assembly-level ABI detective work, Claude landing commits in php-src, a survey on why nobody upgrades, Portuguese wiring codes, and the corporate spy saga that ate your RAM. Just an "off week."
π The Surprise RC7 and the Last-Minute Regression
Joe, serving as a first-time release manager alongside Matteo Beccati, walked through why PHP 8.6.0 RC7 appeared seemingly out of nowhere. RC6 was tagged on the usual Tuesday cadence, but a regression needed to land, leaving the team a choice: ship 8.6.0 GA with a known regression where working 8.5 code would break on upgrade, or throw another RC. As Joe put it, he'd rather apologize for a last-minute RC than apologize for a regression on GA.
The decision was made easier by the fact that packagers like Remy need lead time to rebuild extensions. Because the team committed to an extra RC, they were also able to slip in a few nice-to-haves, including some use-after-free OpenSSL fixes that were all public knowledge and nothing security-embargoed.
Sara fully endorsed the "when in doubt, add an RC" philosophy, pointing out that releases happen on Thursdays precisely so the weekend acts as a buffer. A December GA wouldn't be the end of the world either β uptime-conscious shops wait until January anyway, giving the packages and the public beta crowd time to shake out surprises. Holly reminded everyone: this is a release candidate, not a release. Don't run it in production.
π¬ Reading Assembly to Hunt an ABI Break
The RC saga tied back to an earlier mistake: the ABI version bump that was missed in RC3 because of the CVE scramble on the 21st. That meant RC3 and RC4 could have had nasty extension conflicts, and anyone seeing weird extension behavior on those builds was likely hitting the ABI break that wasn't caught until RC5.
Joe showed off Daniel Scherzer's blog post, which drops down into the actual assembly and diffs the obj-dump output for the exception check. The trio squinted at near-identical instruction listings until the real difference surfaced: a jump target that moved from one address to another β about 32 bytes off from where the code expected to be looking.
Sara reverse-engineered the cause live: roughly four word-sized fields had been added to the end of a structure (it's in Reflection), shifting every subsequent offset. She explained the ABI lesson clearly β a header says "this field is X bytes into the structure," and if you mix an 8.5 header with an 8.6 build, you read garbage memory. For a plain integer that's bad data; for a pointer, the CPU politely tells you to fuck off, mate. The catch: it only bites extensions built as separate shared objects, not statically built ones.
π€ Claude as a Contributor and the "Humans.txt" Problem
Joe raised a spirited discussion happening in the PHP Foundation's internals Slack: Claude Code now shows up as a contributor in php-src, and some worry that reads like the project endorsing a commercial AI tool. Sara pushed back β commits attributed to @yahoo.com or @facebook.com addresses aren't endorsements, they're just people contributing while earning a living. Holly added that mailing lists and git clients have appended "Sent from my iPhone" style signatures forever and nobody cared.
The real sticking point, Joe argued, is that AI-generated contributions haven't been tested against open-source licensing in any legal system, yet those contributions are now in the project. Sara pointed to php.net/humans.txt, which still reads "built by humans, mostly" β a "mostly" she thinks may have quietly been there all along.
The conversation also detoured into Claude's new 5.2 behavior around security: it'll audit your own code and describe exploits with suggested patches, but it won't generate a proof-of-concept exploit to actually validate the vulnerability. Holly found that limitation a bit pointless, while the gang schemed about pointing it at localhost.
π Why Teams Don't Upgrade PHP
Joe dug into a recent opt-in survey about what blocks teams from upgrading. The headline findings: it's almost never a single blocker (47β51% cite more than one), 86% cite at least one business or resource reason, and 51% say there's no visible ROI in upgrading. Sara's immediate rebuttal: if you're on PHP 5, there absolutely is an ROI β you can run half as many servers.
Holly aired a pet peeve that upgrading a language version shouldn't break things, prompting a friendly "citation needed" from Sara. Joe countered that the real pain in legacy apps (pre-8) is usually unvetted, unmaintained dependencies β the one-off package that did one thing well but got abandoned, so even 5.5 to 5.6 broke it. Sara agreed that's an ecosystem problem, not PHP's fault, and challenged the group to name actual PHP-caused breaks: pulling mysql out of core, the ternary precedence swap, and little surprises like opcache becoming standard.
That opcache change was exactly Holly's lived example: an 8.3-to-8.5 Docker build broke because a now-unnecessary build step for opcache failed with no obvious documentation. Sara's gentle suggestion to read the migration guides (plural, since it was a two-version jump) sparked some mock outrage, but the underlying point stood β unnecessary friction is a real cost, and the bigger the version gap, the more insurmountable the step. The survey also noted 56% cite missing tests or staging environments, and even many who run automated tests lack confidence in their coverage.
π Home Automation, Portuguese Wiring, and the Spouse Test
A tangent about testing "wiring" turned literal when Sara revealed she's been rewiring her new place in Portugal β where brown is live and blue is neutral (IEC color codes), which Joe immediately flagged as a nightmare for the colorblind. Sara's home is heavy on automation: motorized metal sun shutters, IKEA smart bulbs in GU10 sockets, Shelly modules behind the light switches, internet-connected heat pumps, and a smart plug that only runs the water heater in the cheap overnight electricity window.
The group compared setups and the all-important "spouse test." Joe keeps it minimal β doorbell camera, backyard security cam, and a Google Nest thermostat that keeps re-adding a schedule he deleted β and admitted his Jellyfin server didn't pass the spouse test at all. Sara and Joe both evangelized Home Assistant: mostly Python but happy to call out to PHP scripts that return JSON, container-friendly via docker-compose, and far from the painful early days of home automation.
They swapped favorite automations β Holly's litter-box nag texts and fridge-door-left-open light color alerts, Joe's jealousy over people graphing solar production in the Rove Discord's home automation channel. Add an MQTT broker and Node-RED and you've got message buses the whole house can listen to. Holly offered to info-dump on anyone who drops by Discord's general channel (dark mode supported, naturally).
π΅οΈ The NVIDIA Spy Saga and a GA on the Horizon
Somewhere between RAM shortages and bad TV writing, the crew riffed on the ex-NVIDIA CEO news β allegedly running GPUs on Chinese hardware he wasn't married to, plus a third "integration" that shouldn't have been happening, with a spy in the mix and the board already preparing to oust him. Joe shared a Mastodon favorite: a "NVIDIA CEO transitions" headline quote-tooted with "I'm so happy for her," which Holly and Sara declared very brave in this climate.
Back to business: PHP 8.6.0 is scheduled to hit general availability on November 19th, and the team floated doing some live server upgrades as a "release party" during next week's recording. Huge shout-out to Matteo (watching live from a very late timezone) for herding php-src pull requests and pinging contributors for approvals to get RC6 and RC7 ready. And as always β there are socks that need selling, a freshly leaked phparch.com redesign to break, and a PHP Arch cowboy hat the people are now demanding.
π Links from the Show
PHP Tek 2027 β Chicago, April 27β29, early bird tickets available
Join the PHP Architect Discord
production.phparch.com β the new site preview (go break it, nicely)
Home Assistant β open-source home automation
What stops PHP teams from upgrading (Accesto survey)
What happened to PHP 8.6.0 RC6? (Daniel Scherzer)
Hosts
Joe Ferguson
Mastodon: @joepferguson@phpc.social
PHPArch.me: @svpernova09
Sara Golemon
Mastodon: @pollita@phpc.social
Holly Schilling
Mastodon: @TheCodeLorax@tech.lgbt
πΊ Streams
YouTube Channel
Twitch
π¬ Connect & Hire
PHP Architect Website
Twitter/X
Mastodon
Hire PHP Developers
Looking to hire PHP developers? Email support@phparch.com - Joe and the team are available for consulting, infrastructure work, Ansible playbooks, and code review.
π€ Partners
This podcast is made a little better thanks to our partners.
OurCVEs
Your security posture, on autopilot with OurCVEs.
CodeRabbit
Cut code review time & bugs in half instantly with CodeRabbit.
PHP Architect Consulting
Your PHP codebase deserves a partner, not a contractor. PHP Architect provides long-term technical partnerships for organizations that need senior-level PHP expertise that you can depend on. Learn more about PHP Architect Consulting.
Music provided by Epidemic Sound.
π― Join Us Live Next Week
Watch on our YouTube Channel
Got feedback? Join us on Discord at discord.phparch.com - In this episode, Scott talks with Zach Watkins about coding through osteoarthritis with Talon Voice, a split keyboard mounted to his chair, and foot pedals with macOS head tracking.
Chapters:
00:00 Meet Zach Watkins
01:26 Numb hands and an osteoarthritis diagnosis
03:21 One week searching for answers
06:30 Patching Talon Voice for PHP
10:03 Writing your own voice commands
12:09 Split keyboards on camera mounts
14:01 Layers on a 42-key keyboard
17:17 Foot pedals
19:35 macOS head and face tracking
Links:
Our Discord – https://discord.gg/aMTxunVx
Buy our shirts – https://store.phparch.com/products/community-corner-podcast-t-shirt
Mentioned in this episode:
Save Your Hands for Another Day (Longhorn PHP 2026 talk) – https://zacharywatkins.com/presentations/save-your-hands-for-another-day/
Coding without typing – https://zacharywatkins.com/articles/coding-without-typing/
Coding without typing (part 2) – https://zacharywatkins.com/articles/coding-without-typing-part-2/
Talon Voice – https://talonvoice.com/
Talon community commands – https://github.com/talonhub/community
Zach’s Talon configuration – https://github.com/ZachWatkins/user-talon
r/ErgoMechKeyboards – https://www.reddit.com/r/ErgoMechKeyboards/
Crosses keyboard – https://github.com/Good-Great-Grand-Wonderful/crosses
Kinesis Savant Elite2 foot pedals – https://kinesis-ergo.com/shop/savant-elite2-triple-pedal/
Move the pointer using head pointer on Mac – https://support.apple.com/guide/mac-help/mchlb2d4782b/mac
Shortcuts for Mac – https://support.apple.com/guide/shortcuts-mac/welcome/mac
Longhorn PHP – https://www.longhornphp.com/
Zach’s Links:
Website – https://zacharywatkins.com/
GitHub – https://github.com/zachwatkins
X – https://x.com/zachwatkinsv1
Scott’s Links:
Website – https://scott.keck-warren.com/
Bluesky – https://bsky.app/profile/scottkeckwarren.bsky.social
LinkedIn – https://www.linkedin.com/in/scott-keck-warren-91689810/
Mastodon – https://phpc.social/@scottkeckwarren
PHP Architect Social Media:
X: https://x.com/phparch
Mastodon: https://phparch.social/@phparch
Bluesky: https://bsky.app/profile/phparch.com
Discord: https://discord.phparch.com
Subscribe to our magazine: https://www.phparch.com/subscribe/
Partners
This podcast is made a little better thanks to our partners.
OurCVEs
Your security posture, on autopilot with OurCVEs
CodeRabbit
Cut code review time & bugs in half instantly with CodeRabbit.
PHP Architect Consulting
Your PHP codebase deserves a partner, not a contractor
PHP Architect provides long-term technical partnerships for organizations that need senior-level PHP expertise that you can depend on
https://www.phparch.com/consulting/
Music provided by Epidemic Sound https://www.epid
The post Community Corner Podcast: Zachary Watkins Codes With His Voice, Feet, and Face appeared first on PHP Architect. - PHP Podcast – November 5, 2026
Hosts: Eric Van Johnson & Joe Ferguson (John Congdon)
Two months, a dozen new stream buttons, and a 6 AM crypto-mining emergency. Eric falls in love with a developer-only social network, the PHP2Shell CVE tests the team, and PHP Tek season kicks off. Welcome to the Boss Level.
Back After Two Months β and Everything Is On Fire (Audio-Wise)
After nearly two months off the air, Eric and John opened the Boss Level episode the only way they know how: with a full-blown audio meltdown. Eric was on the wrong mic, and as usual, his connection kept cutting in and out while the crew wrestled with a fresh stack of stream widgets, pop-up reactions, and survey overlays nobody fully understood.
Once they got the sound working, they reintroduced the show. This is the monthly “Boss Level” episode where the two people behind PHP Architect pull back the curtain on the magazine, the conference, and the consulting business β with a little more candor than usual, since, as Eric put it, John can’t fire him and he can’t fire John.
Leaked AWS Keys and a 6 AM Bitcoin-Mining Nightmare
John’s week started at 6:10 AM with pager alerts about a Lambda function failing to post to Slack. What looked like a trivial memory leak turned out to be something far worse: a leaked AWS key with permission to spin up instances. An attacker had launched 32x and 64x large machines in every single region to mine Bitcoin.
The team rallied β four or five people each terminating instances region by region β and disabled the compromised key before new instances could spawn. Using AI tools to dig through the logs, they discovered the key had first been quietly tested back in September, likely by whoever was selling it to prove it was valid before putting it on the market. Identifying and rectifying took about 20 minutes, but it was not a fun morning.
/Dev/Null: A Social Network Built for Developers in a Day
Eric gushed about /dev/null, a brand-new developer-centric social network built on Laravel in roughly a day or two by Nuno, Brent, Matthew, and Pauline Voss. Everything about it is geared to developers: the main feed is “the log,” posting is “making a commit,” your VIM bindings work inside it, and sign-up ties directly to your GitHub account to pull in your profile. He’s begging the creators to keep the walled garden intact and not make it easier for the “normies.”
He also highlighted a TUI built by Wendell (a Laravel employee and PHP Architect columnist) that mirrors the web app so closely it’s become Eric’s home for DevNull right inside his Tmux setup. That led into a tour of his terminal-centric workflow β one Tmux session per project (a trick from Jess Archer), panes for Claude, nvim, and dev servers, lazygit for commits β and why he quietly retired PHPStorm earlier this year in favor of nvim and the terminal. Pauline, a fantastic conference speaker known for Git talks, has even started livestreaming on Twitch following the build.
PHP Tech 2027: Call for Speakers Closed, Evaluation Begins
The call for speakers has closed, and talk evaluation is underway. John is changing the process this year so reviewers judge fewer talks at a time β one smaller track took him about three minutes. Anyone in the community, ideally planning to attend, can reach out to John on Discord to get added and help pick what gets presented. You rank three anonymized talks side by side, with the title doing most of the heavy lifting since that’s what attendees see on the website.
Eric reminded listeners that submitting multiple talks improves their odds of being selected when narrowing the final list. Speakers with more than one accepted talk get priority since they’re the biggest bang for the buck. This year’s third track rotates: a JavaScript day, a Laravel day, and a DevOps day. John noted it was exactly that deployment knowledge gap that first drew him to PHP Tech back in 2010, when he had no idea how to actually deploy an application. All the details live at phptek.io.
The PHP-to-Shell CVE and Why a DevOps Person Matters
PHP had a rough couple of weeks due to a major “PHP2shell” CVE. Joe, a release manager for the upcoming PHP 8.6, had sensed something was brewing and started preparing rollout plans before the details dropped. When it hit, the team patched nearly everything across their clients within 24 hours, with only a couple of third-party-dependent servers trailing. Eric and John reflected that after 14 years of running their consulting arm (the DiegoDev Group, now PHP Architect Consulting), finally having a dedicated DevOps person has made the difference between night and day.
The fallout rippled outward: NativePHP published a candid write-up about having to issue its first-ever security advisory, since a PHP vulnerability affects anything that compiles PHP into a mobile app. The hosts wondered how projects like NativePHP can get into the “consortium” that receives early patch access alongside the big distros. They also pushed back on the “PHP is dead” crowd β this was a memory bug that has lived in the code for 20 years and affects roughly 70% of the web, but memory bugs happen in every language, from Node to npm. The silver lining: a visible spike in PHP Foundation financial contributions, with Eric clarifying that the Foundation funds internal developers but doesn’t dictate PHP’s direction.
Git Workflows, SVN War Stories, and the Specialization of Developers
The conversation wandered into deployment history β FTP and rsync in the SVN/CVS days β and Eric’s war stories from a Java/WebSphere enterprise shop where developers had no idea where their apps were even hosted. His takeaway: developers today are extremely specialized, and you shouldn’t be surprised when a brilliant Java dev can’t navigate a command line.
Eric defended his fork-based Git workflow: a single clean “upstream” repo that only deploys to servers, with everyone forking into their own private GitHub account and sending back only clean, deployment-ready code, essentially the open-source model. The chat gave him grief, including jabs about failing at Git worktrees, which Eric conceded he understands in principle but finds painful in a PHP workflow with its multiple Composer and npm installs and environment files.
Links from the show:
PHP Tech 2027 β Call for speakers closed; register now
PHP Architect Consulting
store.phparch.com β PHP Architect merch & elephants
PHP Foundation Office Hours (streamed on our channel)
Dev-Null.sh
PHP 8.6.0 RC5 available for testing
Linux Kernel TCP Flaw
PHP 8.6βs soft feature freeze
PHP Foundation Community Hour Podcast
NativePHP first security advisories
Host:
Eric Van Johnson
/dev/null: @ericvanjohsnon
X: @shocm
Mastodon: @eric@phparch.social
Bluesky: @ericvanjohnson.bsky.social
PHPArch.me: @eric
John Congdon
/dev/null: @johncongdon
X: @johncongdon
Mastodon: @john@phparch.social
Bluesky: @johncongdon.bsky.social
PHPArch.me: @john
Streams:
Youtube Channel
Twitch
Connect & Hire
PHP Architect Website
Twitter/X
Mastodon
Hire PHP Developers
Looking to hire PHP developers? Email support@phparch.com – Joe and the team are available for consulting, infrastructure work, Ansible playbooks, and code review.
Partner
This podcast is made a little better thanks to our partners
OurCVEs
Your security posture, on autopilot with OurCVEs
CodeRabbit
Cut code review time & bugs in half instantly with CodeRabbit.
PHP Architect Consulting
Your PHP codebase deserves a partner, not a contractor
PHP Architect provides long-term technical partnerships for organizations that need senior-level PHP expertise that you can depend on.
https://www.phparch.com/consulting/
Music Provided by Epidemic Sound
https://www.epidemicsound.com/
Join Us Live Next Week
Youtube Channel
Got feedback? Join us on Discord at discord.phparch.com
The post The PHP Podcast 2026.11.05 appeared first on PHP Architect. - In this episode, Scott talks with Jamison Bryant about what sets CakePHP apart from Laravel and Symfony, the plugin ecosystem, and how he moved TicketSauce from CakePHP 2 to 5 with the strangler fig pattern.
Links:
Our Discord – https://discord.gg/aMTxunVx
Buy our shirts – https://store.phparch.com/products/community-corner-podcast-t-shirt
Mentioned in this episode:
CakePHP – https://cakephp.org/
CakePHP on GitHub – https://github.com/cakephp/cakephp
Bake console – https://book.cakephp.org/5/en/bake.html
CakePHP plugins directory – https://plugins.cakephp.org/
Awesome CakePHP – https://github.com/FriendsOfCake/awesome-cakephp
SwaggerBake plugin – https://github.com/cnizzardini/cakephp-swagger-bake
CakePHP Preloader (OPcache) – https://github.com/cnizzardini/cakephp-preloader
CakePHP Authentication – https://github.com/cakephp/authentication
CakePHP Authorization – https://github.com/cakephp/authorization
CakePHP app template – https://github.com/cakephp/app
Strangler Fig Application by Martin Fowler – https://martinfowler.com/bliki/StranglerFigApplication.html
CakePHP 5.0 migration guide – https://book.cakephp.org/5/en/appendices/5-0-migration-guide.html
CakePHP upgrade tool – https://github.com/cakephp/upgrade
Rector – https://getrector.org/
Cake Software Foundation – https://cakefoundation.org/
CakeDC – https://www.cakedc.com/
Passbolt – https://www.passbolt.com/
TicketSauce – https://www.ticketsauce.com/
XKCD Dependency – https://xkcd.com/2347/
Longhorn PHP – https://www.longhornphp.com/
php[tek] – https://phptek.io/
I Built a CakePHP Plugin From My iPhone While Packing for a Trip – https://www.phparch.com/article/2026-08-i-built-a-cakephp-plugin-from-my-iphone-while-packing-for-a-trip/
Jamison’s Links:
Website – https://jamison.bryant.ai/
Blog (Serious Semicolons) – https://serioussemicolons.wordpress.com/
Mastodon – https://phpc.social/@ssemicolons
LinkedIn – https://www.linkedin.com/in/jamisonbryant/
GitHub – https://github.com/jamisonbryant
Scott’s Links:
Website – https://scott.keck-warren.com/
Bluesky – https://bsky.app/profile/scottkeckwarren.bsky.social
LinkedIn – https://www.linkedin.com/in/scott-keck-warren-91689810/
Mastodon – https://phpc.social/@scottkeckwarren
PHP Architect Social Media:
X: https://x.com/phparch
Mastodon: https://phparch.social/@phparch
Bluesky: https://bsky.app/profile/phparch.com
Discord: https://discord.phparch.com
Subscribe to our magazine: https://www.phparch.com/subscribe/
Partners
This podcast is made a little better thanks to our partners.
OurCVEs
Your security posture, on autopilot with OurCVEs
CodeRabbit
Cut code review time & bugs in half instantly with CodeRabbit.
PHP Architect Consulting
Your PHP codebase deserves a partner, not a contractor
PHP Architect provides long-term technical partnerships for organizations that need senior-level PHP expertise that you can depend on
https://www.phparch.com/consulting/
Music provided by Epidemic Sound https://www.epidemicsound.com/
The post Community Corner Podcast: cakePHP with Jamison Bryant appeared first on PHP Architect. - PHP Podcast – October 29, 2026
Hosts: Joe Ferguson, Sara Golemon & Holly Schilling
Patrick Stewart has passed. Tailscale handed out root. The PHP RCE patch landed. And MediaWiki contributer Brooke Vibber tells us how Wikipedia survives celebrity deaths, 500 languages, and Apple’s file system.
Patrick Stewart, Cache Stampedes, and the Michael Jackson Outage
The crew opened on the sad news of Patrick Stewart’s passing. That segued directly into special guest Brooke Vibber recounting a very real MediaWiki war story from the early days.
Back in 2009, when Michael Jackson died, so many people tried to edit the Wikipedia article simultaneously that the entire system fell over. Each save triggered a full re-render, link table updates, and layers of other work β and with a thousand of those happening at once, it destroyed everything.
The emergency fix was a hack that served stale cached data to anyone viewing the Michael Jackson page, which instantly brought the site back online. The proper fix came later: a pressure valve for high-concurrency situations, a textbook cache-stampede problem they should have anticipated but didn’t catch until real planetary-scale load exposed it. Since fixing it correctly, they’ve never had a repeat β even for later celebrity deaths.
Tailscale SSH Root and the PHP RCE Patch
The team covered Tailscale’s security adventure where the built-in SSH functionality let someone already on a node in your tailnet get root on any server running it. Because it requires network access first, it wasn’t catastrophic, and Tailscale patched it quickly β though Holly cheerfully admitted to not updating her family game servers.
Talk turned to the big PHP RCE vulnerability. Joe, as a release manager, actually got early access to the patch and noted it was massive β lots of files touched. The Foundation blog explained the bug was found in the 2024 security audit, but the security team struggled not with *how* to fix it but how to fix it *best*, producing competing implementations with different tradeoffs while it remained only a theoretical exploit.
Sara underlined that memory-corruption RCEs like this β where a bailout leaves data somewhere it shouldn’t be, eventually turning into bytecode or binary β are extremely hard to pull off, depending on architecture and memory layout. Despite claims of in-the-wild exploitation, most were retracted, and performance impact of the fix turned out to be negligible. Wikimedia’s own response was to simply shut down all user-generated cloud services code until the patch was installed β sometimes the biggest circuit breaker is the best security.
HHVM, PHP 7, and the Phantom PHP 6
Brooke walked through Wikimedia’s journey with HHVM, which gave a solid 2x improvement over PHP 5 when Sara’s team at Facebook was pitching it. But once PHP 7 arrived β borrowing many of HHVM’s performance ideas β the gap closed, performance got more consistent and less spiky, and the extra complexity of running HHVM plus the pressure to adopt Hack stopped being worthwhile.
Sara took partial credit for grabbing the clever bits out of HHVM and getting them into PHP 7, all without a JIT (that didn’t arrive until PHP 8). Wikimedia stuck with mainline PHP for broader compatibility and because they’d written their entire codebase in PHP and had no desire to switch to Hack.
Naturally, the conversation detoured into the legend of PHP 6. Sara confirmed the last version of PHP 6 lives on in a Git tag β something like an experimental first Unicode attempt β and it will generally compile, just don’t expect performance, since it runs about a third the speed of PHP 7. Holly floated secretly shipping PHP 8.6 as the PHP 6 branch, and Sara noted that re-adding Register Globals would be trivially easy and really ought to be an April Fool’s joke someday.
500 Languages, Unicode, and the Localization Cache
Brooke revealed MediaWiki is quite possibly the most localized software in the world, supporting roughly 500 human languages β real languages with assigned ISO codes, not Klingon (though that might exist too). The system uses fallback chains, so a reader in a former Soviet country might fall back to Russian before English, and it can even dynamically convert between scripts like Serbian Cyrillic and Latin, or Chinese traditional and simplified.
The infrastructure runs across roughly 2,200β2,500 Kubernetes-hosted application servers in data centers in Virginia and Texas (with a smaller caching center in San Francisco). Every MediaWiki update is packaged into an image with the pre-compiled localization cache and atomically rolled out across all nodes.
Brooke worked on a patch to move the localization cache from a disk-backed database to an in-memory one built from PHP array literals, letting OPcache deduplicate all the strings automatically. In isolated testing it should yield several percent throughput improvement β which, at Wikipedia’s traffic volume, translates to tens or hundreds of thousands of dollars of equipment saved.
The Esperanto Unicode Origin Story
In one of the nerdiest stories the show has ever aired, Brooke explained how they first got involved in Wikipedia development back in 2001 β through localization support, while learning Esperanto for fun. (Bonus trivia: there’s a 1966 horror film, *Incubus*, starring William Shatner entirely in Esperanto, with pronunciation so notorious that Esperanto conventions turn it into a drinking game.)
Because the early wikis ran 8-bit Latin-1, Esperanto’s accented characters didn’t work. So Brooke patched the open-source code to use UTF-8 for the Esperanto edition β doing Unicode before UTF-8 was the universal standard. As MediaWiki (built by Magnus Manske) took over, every new language wiki went straight to Unicode, and eventually English Wikipedia was converted too, using on-demand dynamic conversion of old Latin-1 revisions to minimize downtime.
That led into a gleeful MySQL gripe session: early MySQL 3 had no transactions and no Unicode, so Wikimedia stored UTF-8 in binary fields and managed their own collations. When MySQL 4 “added Unicode,” the fine print revealed it only supported the Basic Multilingual Plane β useless for the rare CJK characters an encyclopedia must store.
Normalization Forms and Cursing Apple
Brooke saved the best horror story for the end: Unicode normalization. An “Γ©” can be stored as a single precomposed character or as “e” plus a combining accent β and macOS on HFS stored file names the second way while everyone else used the first. The result was Mac users uploading images whose filenames wouldn’t match when others tried to link them.
Since a compatible ICU library couldn’t be guaranteed, Brooke wrote a pure-PHP fallback that validated UTF-8 *and* normalized it to the precomposed form, so every way you type a name links the same way. Brooke cursed the Unicode Foundation many times β but cursed Apple a lot more, since everything else did the right thing by default.
The group agreed the Intl extension (which provides exactly this normalization) is one of the few things that really should be installed by default β Wikipedia requires it outright now. They closed with a quick nod to Holly’s pet project on scalar extension functions for strings and a final push for the PHP Tech CFP, open through October 31.
Links from the show:
PHP Tech 2027 β Chicago, April 27β29; CFP & early bird tickets at phptek.io (CFP closes Oct 31)
Brooke Vibber β brooke.vibber.net
MediaWiki β the engine that runs Wikipedia
Join us live in Discord
Hosts:
Joe Ferguson
Mastodon: @joepferguson@phpc.social
PHPArch.me: @svpernova09
Sara Golemon
Mastodon: @pollita@phpc.social
Holly Schilling
Mastodon: @TheCodeLorax@tech.lgbt
Brooke Vibber
Mastodon: @bvibber@wikis.world
Web: brooke.vibber.net
Streams:
Youtube Channel
Twitch
Esperanto
Unicode
Connect & Hire
PHP Architect Website
Twitter/X
Mastodon
Hire PHP Developers
Looking to hire PHP developers? Email support@phparch.com – Joe and the team are available for consulting, infrastructure work, Ansible playbooks, and code review.
Partner
This podcast is made a little better thanks to our partners
OurCVEs
Your security posture, on autopilot with OurCVEs
CodeRabbit
Cut code review time & bugs in half instantly with CodeRabbit.
PHP Architect Consulting
Your PHP codebase deserves a partner, not a contractor. PHP Architect provides long-term technical partnerships for organizations that need senior-level PHP expertise that you can depend on. Learn more.
Music Provided by Epidemic Sound
https://www.epidemicsound.com/
Join Us Live Next Week
Youtube Channel
Got feedback? Join us on Discord at discord.phparch.com
The post The PHP Podcast 2026.10.29 appeared first on PHP Architect.
More Technology podcasts
Trending Technology podcasts
About PHP Architect Podcasts
All podcasts from PHP Architect β PHP tutorials, interviews, and community discussions.
Podcast websiteListen to PHP Architect Podcasts, The Vergecast and many other podcasts from around the world with the radio.net app

Get the free radio.net app
- Stations and podcasts to bookmark
- Stream via Wi-Fi or Bluetooth
- Supports Carplay & Android Auto
- Many other app features
PHP Architect Podcasts: Podcasts in Family









































