Skip to content
Radio Logo
PodcastsTechnologyPHP Architect Podcasts

PHP Architect Podcasts

PHP Architect
Latest episode

50 episodes

  • PHP Architect Podcasts

    The PHP Podcast 2026.11.12

    2026/11/12 | 1h
    πŸŽ™οΈ 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
  • PHP Architect Podcasts

    Community Corner Podcast: Zachary Watkins Codes With His Voice, Feet, and Face

    2026/11/11 | 23 mins.
    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 Architect Podcasts

    The PHP Podcast 2026.11.05

    2026/11/06 | 1h 13 mins.
    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.
  • PHP Architect Podcasts

    Community Corner Podcast: cakePHP with Jamison Bryant

    2026/11/04 | 23 mins.
    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 Architect Podcasts

    The PHP Podcast 2026.10.29

    2026/10/29 | 1h 11 mins.
    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
About PHP Architect Podcasts
All podcasts from PHP Architect β€” PHP tutorials, interviews, and community discussions.
Podcast website

Listen 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