<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
xmlns:podcast="https://podcastindex.org/namespace/1.0"
xmlns:rawvoice="https://blubrry.com/developer/rawvoice-rss/"
>

<channel>
	<title>PHP Architect</title>
	<atom:link href="https://www.phparch.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.phparch.com/</link>
	<description>The site for PHP professionals, Magazine, Training, Books, Conferences</description>
	<lastBuildDate>Fri, 05 Jun 2026 00:10:06 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.2</generator>

<image>
	<url>/wp-content/uploads/2023/09/cropped-favicon-512x512-1-32x32.png</url>
	<title>PHP Architect</title>
	<link>https://www.phparch.com/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<atom:link rel="hub" href="https://pubsubhubbub.appspot.com/" />
	<podcast:locked>True</podcast:locked>
	<itunes:author>PHP Architect</itunes:author>
	<itunes:explicit>false</itunes:explicit>
	<itunes:image href="https://www.phparch.com/wp-content/uploads/2025/09/PHP-Podcast-Logo-1000x1000-6.png" />
	<itunes:owner>
		<itunes:name>PHP Architect</itunes:name>
		<itunes:email>eric@phparch.com</itunes:email>
	</itunes:owner>
	<podcast:medium>podcast</podcast:medium>
	<image>
		<title>PHP Architect</title>
		<url>https://www.phparch.com/wp-content/uploads/2025/09/PHP-Podcast-Logo-1000x1000-6.png</url>
		<link>https://www.phparch.com</link>
	</image>
	<podcast:podping usesPodping="true" />
	<item>
		<title>The PHP Podcast 2026.06.04</title>
		<link>https://www.phparch.com/podcast/the-php-podcast-2026-06-04/</link>
		
		<dc:creator><![CDATA[Eric Van Johnson]]></dc:creator>
		<pubDate>Fri, 05 Jun 2026 00:10:06 +0000</pubDate>
				<category><![CDATA[PHP Architect]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[The PHP Podcast]]></category>
		<guid isPermaLink="false">https://www.phparch.com/?post_type=podcast&#038;p=19460</guid>

					<description><![CDATA[<p><img src="/wp-content/uploads/2026/06/The-PHP-Podcast-2026.06.04.png" alt="" /></p>
<p>🎙️ PHP Podcast &#8211; June 4, 2026 Hosts: Eric Van Johnson &#38; John Congdon Another fun episode of the PHP Podcast! Here&#8217;s what we covered: 🎪 PHP Tek 2027 — New Dates, Bold New Format Mark your calendars: PHP Tek 2027 is happening April 27–29 in Chicago, and Eric and John are shaking things up. [&#8230;]</p>
<p>The post <a href="https://www.phparch.com/podcast/the-php-podcast-2026-06-04/">The PHP Podcast 2026.06.04</a> appeared first on <a href="https://www.phparch.com">PHP Architect</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img src="/wp-content/uploads/2026/06/The-PHP-Podcast-2026.06.04.png" alt="" /></p><p><!-- PHP Podcast Show Notes Template --></p>
<p style="text-align: center;"><iframe class="custom-youtube-iframe" title="The PHP Podcast 2026.06.04" src="https://www.youtube.com/embed/ayTxjs1HP_c" width="1020" height="630" frameborder="0" allowfullscreen="allowfullscreen"><br />
<span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start"> </span><br />
</iframe></p>
<h1><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f399.png" alt="🎙" class="wp-smiley" style="height: 1em; max-height: 1em;" /> PHP Podcast &#8211; June 4, 2026</h1>
<p><strong>Hosts:</strong> Eric Van Johnson &amp; John Congdon</p>
<h4><strong>Another fun episode of the PHP Podcast! Here&#8217;s what we covered:</strong></h4>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f3aa.png" alt="🎪" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>PHP Tek 2027 — New Dates, Bold New Format</strong><br />
Mark your calendars: PHP Tek 2027 is happening April 27–29 in Chicago, and Eric and John are shaking things up. Rather than a straight three-day PHP conference, next year gets three tracks — two of which are familiar PHP-focused content, and a third specialty track that rotates each day: one day of JavaScript, one day of DevOps, and one day of Laravel. The Laravel track is specifically focused on how developers actually use the framework day-to-day, not a product pitch. Single-day passes will be available, so if you&#8217;re only coming for the DevOps or JS day, you&#8217;re covered. One important heads-up: there&#8217;s a big convention happening at a venue nearby in Rosemont, so the hotel block could sell out faster than usual. When they open reservations, don&#8217;t wait.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f418.png" alt="🐘" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Holly the Elephant Is Going Fast</strong><br />
The PHP Architect conference elephant, named Holly, is now available at store.phparch.com, and demand has been remarkable. Eric woke up one morning to a flood of orders and genuinely couldn&#8217;t figure out what happened. The warning from last year applies here: people said they&#8217;d grab Tony later, and now Tony is gone forever. Holly ships June 17th for most orders, but if you&#8217;ve already ordered, it&#8217;s likely on its way. Get yours while you can.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f4fa.png" alt="📺" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>PHP Tek TV Is Doing Something Different This Year</strong><br />
In past years, conference talk videos would get edited and uploaded weeks (or months) after the event. This year, John is doing things differently: the raw, unedited recordings are going up now, with timestamps in the description so you can jump straight to specific talks — some rooms recorded a seven-hour continuous feed and just left it running. The clean edited versions are still coming (a video editor friend in the UK is on it), but if you want to see a talk right now, the raw version is there. Audio quality varies by room, but it&#8217;s watchable.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f4f7.png" alt="📷" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Immich — A Self-Hosted Google Photos That Actually Works</strong><br />
John has been running Immich, a self-hosted photo management platform, in a Docker container for about a month and loves it. It does facial recognition, GPS tagging, and auto-uploads from his phone — essentially everything he cares about in Google Photos, without handing his photos to Google or Apple. He&#8217;s now planning to use it as the PHP Architect conference photo library, centralizing all the Tech photos in one browsable, shareable place. It&#8217;s fully open source, with no licensing cost, and an optional donation tier. If you&#8217;re sick of paying ever-increasing storage bills to big tech companies, this is worth a look.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f4c4.png" alt="📄" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Ben Ramsey&#8217;s PHP Tek Homecoming Article Is Free to Read</strong><br />
The May issue of PHP Architect magazine is now available to digital subscribers, and this month&#8217;s free article is Ben Ramsey&#8217;s piece on the PHP Tek homecoming experience. Eric reached out to Ben last minute and he delivered. If you&#8217;ve never subscribed, this is a low-barrier way to see what the magazine is like. Head to phparch.com, grab the free article, and if you like what you see, subscriptions are not expensive.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f527.png" alt="🔧" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>John Is Resurrecting a Legacy Laravel App — With Claude&#8217;s Help</strong><br />
John has been grinding away on a Laravel 6 app that was a passion project years ago and has now been revived as an actual client project. Using Claude to methodically baby-step through each version upgrade — starting with writing tests to establish a baseline — he&#8217;s worked up through the major Laravel versions. The turning point came when he hit the version where the old event sourcing package (Prooph) was clearly on its way out, and the decision was made to migrate to Verbs, Nuno Maduro&#8217;s Laravel-native event sourcing package. John&#8217;s now looking forward to it. He&#8217;s also accidentally been burning tokens on the company Anthropic account (not his personal account), which Eric caught live on air. They are going to talk about it after the show.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f517.png" alt="🔗" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Eric&#8217;s Mystery Side Project Is Almost Ready — If DNS Would Cooperate</strong><br />
Eric teased a new side project last week and intended to reveal it this week, but he&#8217;s stuck waiting on DNS propagation. The domain was registered with DigitalOcean DNS already in use by a previous owner, so Eric moved it to Cloudflare — only to discover there may be a conflict because the previous owner was also on Cloudflare. The result: the name servers are stuck on old values. John&#8217;s live suggestion was to move it to Route 53, and Eric was immediately sold. The project is almost ready to show the world, DNS gods willing.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f916.png" alt="🤖" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Meta&#8217;s AI Support Bot Got Socially Engineered</strong><br />
Eric shared a video demonstrating how someone prompt-injected Meta&#8217;s AI customer support bot into sending a verification code to an attacker-controlled email address — and then using that code to add the email to an account, enabling a full password reset and account takeover. The irony: Meta is the company behind Llama and has some of the deepest AI expertise on the planet, and they still shipped a support bot with permissions it shouldn&#8217;t have. Eric&#8217;s point was pointed: you can fire a human employee who gets social engineered, which creates accountability throughout the team. An AI has no such incentive structure. Crowbarring AI into account-modification workflows without appropriate guardrails is just asking for this.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f4cb.png" alt="📋" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>The PHP Foundation Now Publishes Board Meeting Minutes</strong><br />
Eric discovered that the PHP Foundation has started publishing their board meeting minutes in a public GitHub repository. Nothing earth-shattering yet, but seeing who attended, what was discussed, and what decisions are being made gives the community a real window into how the foundation operates at scale. It also helps explain something Eric and John have always found interesting: why PHP stalled so hard between versions 5 and 7. There was no foundation, no financial backing, just volunteer hours. Now there&#8217;s a paid staff and governance structure — and the minutes show exactly how complex running something at PHP&#8217;s scale actually is.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f6e1.png" alt="🛡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>The PHP Foundation Has a Dedicated Security Team Now</strong><br />
Speaking of the Foundation, it now has a dedicated security team — a sign of how seriously the supply chain attack problem has gotten. AI tools are being deployed by black hat actors to find vulnerabilities in open source projects at a scale that wasn&#8217;t possible before. PHP is not just another open source project; it underpins a massive slice of the web, and companies depend on it staying secure. Having a team specifically focused on this is the right call, even if it&#8217;s a sobering reminder of where the threat landscape is heading.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f50d.png" alt="🔍" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Moat — Nuno&#8217;s GitHub Security Auditing Tool</strong><br />
Nuno Maduro (of Laravel fame) quietly shipped a tool called Moat that audits your GitHub presence for security gaps. Install it globally via Brew or Composer, point it at your GitHub org, a specific repo, or even a specific branch, and it gives you a report on where your security posture could be improved. It&#8217;s read-only — it won&#8217;t change anything — and it&#8217;s explicit that it is not a security certification. Eric wants to use it to audit the PHP Architect organization&#8217;s repos, many of which haven&#8217;t been touched in years. Think of it as a fast, opinionated triage tool, not a replacement for a real security audit.</p>
<h3>Links from the show:</h3>
<ul>
<li><a href="https://phptek.phparch.com">PHP Tek 2027 — Chicago, April 27–29</a></li>
<li><a href="https://store.phparch.com">PHP Architect Store — Holly the Elephant</a></li>
<li><a href="https://immich.app">Immich — Self-Hosted Photo Management</a></li>
<li><a href="https://phparch.com">PHP Architect Magazine</a></li>
<li><a href="https://github.com/hirethunk/verbs">Verbs — Laravel Event Sourcing by Thunk</a></li>
<li><a href="https://github.com/nunomaduro/moat">Moat — GitHub Security Auditing by Nuno Maduro</a></li>
<li><a href="https://github.com/php-foundation">PHP Foundation on GitHub</a></li>
<li><a href="https://discord.phparch.com">PHP Architect Discord</a></li>
</ul>
<h2>Host:</h2>
<h3>Eric Van Johnson</h3>
<ul>
<li>X: <a href="https://x.com/shocm">@shocm</a></li>
<li>Mastodon: <a href="https://phparch.social/@eric">@eric@phparch.social</a></li>
<li>Bluesky: <a href="https://bsky.app/profile/ericvanjohnson.bsky.social">@ericvanjohnson.bsky.social</a></li>
<li><a href="http://PHPArch.me">PHPArch.me</a>: <a href="https://phparch.me/@eric">@eric</a></li>
</ul>
<h3>John Congdon</h3>
<ul>
<li>X: <a href="https://x.com/johncongdon">@johncongdon</a></li>
<li>Mastodon: <a href="https://phparch.social/@john">@john@phparch.social</a></li>
<li>Bluesky: <a href="https://bsky.app/profile/johncongdon.bsky.social">@johncongdon.bsky.social</a></li>
<li><a href="http://PHPArch.me">PHPArch.me</a>: <a href="https://phparch.me/@john">@john</a></li>
</ul>
<h2>Streams:</h2>
<ul>
<li style="list-style-type: none;">
<ul>
<li><a href="https://www.youtube.com/phparch">Youtube Channel</a></li>
<li><a href="https://www.twitch.tv/phparch">Twitch</a></li>
</ul>
</li>
</ul>
<h2><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f4ec.png" alt="📬" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Connect &amp; Hire</h2>
<div class="social-links"><a href="https://phparch.com" target="_blank" rel="noopener">PHP Architect Website</a><br />
<a href="https://x.com/phparch" target="_blank" rel="noopener">Twitter/X</a><br />
<a href="https://phparch.social/@phparch" target="_blank" rel="noopener">Mastodon</a><br />
<a href="mailto:support@phparch.com">Hire PHP Developers</a></div>
<p><strong>Looking to hire PHP developers?</strong> Email <a href="mailto:support@phparch.com">support@phparch.com</a> &#8211; Joe and the team are available for consulting, infrastructure work, Ansible playbooks, and code review.</p>
<h1>Partner</h1>
<p>This podcast is made a little better thanks to our partners</p>
<p><strong><a href="https://displace.tech/">Displace</a></strong><br />
<img decoding="async" class="wp-image-18480 alignleft" src="https://www.phparch.com/wp-content/uploads/2025/09/archived-version-phparch-logos-512-x-512-px-300x300.png" alt="" width="173" height="173" srcset="https://www.phparch.com/wp-content/uploads/2025/09/archived-version-phparch-logos-512-x-512-px-300x300.png 300w, https://www.phparch.com/wp-content/uploads/2025/09/archived-version-phparch-logos-512-x-512-px-150x150.png 150w, https://www.phparch.com/wp-content/uploads/2025/09/archived-version-phparch-logos-512-x-512-px-160x160.png 160w, https://www.phparch.com/wp-content/uploads/2025/09/archived-version-phparch-logos-512-x-512-px-50x50.png 50w, https://www.phparch.com/wp-content/uploads/2025/09/archived-version-phparch-logos-512-x-512-px-120x120.png 120w, https://www.phparch.com/wp-content/uploads/2025/09/archived-version-phparch-logos-512-x-512-px.png 512w" sizes="(max-width: 173px) 100vw, 173px" /></p>
<p>&nbsp;</p>
<p>Infrastructure Management, Simplified<br />
Automate Kubernetes deployments across any cloud provider or bare metal with a single command. Deploy, manage, and scale your infrastructure with ease.<br />
<a href="https://displace.tech/">https://displace.tech/</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong><a href="https://phpscore.com/">PHPScore</a></strong><br />
<img decoding="async" class="size-full wp-image-18481 alignleft" src="https://www.phparch.com/wp-content/uploads/2025/09/Screenshot-2025-09-18-at-5.17.47 PM.png" sizes="auto, (max-width: 212px) 100vw, 212px" srcset="https://www.phparch.com/wp-content/uploads/2025/09/Screenshot-2025-09-18-at-5.17.47 PM.png 212w, https://www.phparch.com/wp-content/uploads/2025/09/Screenshot-2025-09-18-at-5.17.47 PM-160x37.png 160w" alt="" width="212" height="49" /></p>
<p>Put Your Technical Debt on Autopay with <a href="https://phpscore.com/">PHPScore</a></p>
<p><strong><a href="https://www.coderabbit.ai/brand">CodeRabbit</a></strong><br />
<img loading="lazy" decoding="async" class="wp-image-18968 alignleft" src="https://www.phparch.com/wp-content/uploads/2026/01/show-300x157.png" alt="CodeRabbit - cut code review time &amp; bugs in half Instantly." width="204" height="107" srcset="https://www.phparch.com/wp-content/uploads/2026/01/show-300x157.png 300w, https://www.phparch.com/wp-content/uploads/2026/01/show-160x84.png 160w, https://www.phparch.com/wp-content/uploads/2026/01/show.png 553w" sizes="auto, (max-width: 204px) 100vw, 204px" /><br />
Cut code review time &amp; bugs in half instantly with <a href="https://www.coderabbit.ai/">CodeRabbit</a>.</p>
<h4></h4>
<p>&nbsp;</p>
<h4>Music Provided by <a href="https://www.epidemicsound.com/">Epidemic Sound </a></h4>
<p><a href="https://www.epidemicsound.com/">https://www.epidemicsound.com/</a></p>
<h2><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f3af.png" alt="🎯" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Join Us Live Next Week</h2>
<p><b><a href="https://www.youtube.com/phparch">Youtube Channel</a></b></p>
<hr />
<p><em>Got feedback? Join us on Discord at <a href="https://discord.phparch.com">discord.phparch.com</a></em></p>
<p>The post <a href="https://www.phparch.com/podcast/the-php-podcast-2026-06-04/">The PHP Podcast 2026.06.04</a> appeared first on <a href="https://www.phparch.com">PHP Architect</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>PHP Tek 2026 Review</title>
		<link>https://www.phparch.com/magazine/2026/05/2026-05-php-tek-2026-review/</link>
					<comments>https://www.phparch.com/magazine/2026/05/2026-05-php-tek-2026-review/#respond</comments>
		
		<dc:creator><![CDATA[John Congdon]]></dc:creator>
		<pubDate>Mon, 01 Jun 2026 18:13:08 +0000</pubDate>
				<guid isPermaLink="false">https://www.phparch.com/?post_type=issue&#038;p=19444</guid>

					<description><![CDATA[<p><img src="/wp-content/uploads/2026/05/2026-05-cover_sm.jpg" alt="" /></p>
<p>As we wrap up May, we want to take a momen to review our conference PHP Tek. This conference has just wrapped it’s 18th annual edition. While we, the current owners, have only just put on our 4th event, PHP Tek has been a staple in the community for many years.</p>
<p>The post <a href="https://www.phparch.com/magazine/2026/05/2026-05-php-tek-2026-review/">PHP Tek 2026 Review</a> appeared first on <a href="https://www.phparch.com">PHP Architect</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img src="/wp-content/uploads/2026/05/2026-05-cover_sm.jpg" alt="" /></p><p>As we wrap up May, we want to take a momen to review our conference PHP Tek. This conference has just wrapped it’s 18th annual edition. While we, the current owners, have only just put on our 4th event, PHP Tek has been a staple in the community for many years.</p>
<p>The post <a href="https://www.phparch.com/magazine/2026/05/2026-05-php-tek-2026-review/">PHP Tek 2026 Review</a> appeared first on <a href="https://www.phparch.com">PHP Architect</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.phparch.com/magazine/2026/05/2026-05-php-tek-2026-review/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>The PHP Podcast 2026.05.28</title>
		<link>https://www.phparch.com/podcast/the-php-podcast-2026-05-28/</link>
		
		<dc:creator><![CDATA[Eric Van Johnson]]></dc:creator>
		<pubDate>Sat, 30 May 2026 21:13:30 +0000</pubDate>
				<category><![CDATA[PHP Architect]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[The PHP Podcast]]></category>
		<guid isPermaLink="false">https://www.phparch.com/?post_type=podcast&#038;p=19429</guid>

					<description><![CDATA[<p><img src="/wp-content/uploads/2026/05/The-PHP-Podcast-2026.05.28.png" alt="" /></p>
<p>🎙️ PHP Podcast &#8211; May 28, 2026 Hosts: Eric Van Johnson &#38; John Congdon Links from the show: PHP barely avoided disaster &#8211; YouTube CVE-2026-45793: Anatomy of a 14-Hour PHP Supply-Chain Near-Miss · graycoreio/github-actions-magento2 · Discussion #261 · GitHub An Update on Composer &#38; Packagist Supply Chain Security PHP Tek: A Homecoming by Ben Ramsey [&#8230;]</p>
<p>The post <a href="https://www.phparch.com/podcast/the-php-podcast-2026-05-28/">The PHP Podcast 2026.05.28</a> appeared first on <a href="https://www.phparch.com">PHP Architect</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img src="/wp-content/uploads/2026/05/The-PHP-Podcast-2026.05.28.png" alt="" /></p><p style="text-align: center;"><iframe loading="lazy" class="custom-youtube-iframe" title="The PHP Podcast 2026.05.28" src="https://www.youtube.com/embed/iNn7wZVReBE?si=haGBMSBt2hl2PxjL" width="1020" height="630" frameborder="0" allowfullscreen="allowfullscreen"><br />
<span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start"> </span><br />
</iframe></p>
<h1><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f399.png" alt="🎙" class="wp-smiley" style="height: 1em; max-height: 1em;" /> PHP Podcast &#8211; May 28, 2026</h1>
<p><strong>Hosts:</strong> Eric Van Johnson &amp; John Congdon</p>
<p>Links from the show:</p>
<ul>
<li><a href="https://www.youtube.com/watch?v=dzQEe7u3k2I">PHP barely avoided disaster &#8211; YouTube</a></li>
<li><a href="https://github.com/graycoreio/github-actions-magento2/discussions/261">CVE-2026-45793: Anatomy of a 14-Hour PHP Supply-Chain Near-Miss · graycoreio/github-actions-magento2 · Discussion #261 · GitHub</a></li>
<li><a href="https://blog.packagist.com/an-update-on-composer-packagist-supply-chain-security/">An Update on Composer &amp; Packagist Supply Chain Security</a></li>
<li><a href="https://ben.ramsey.dev/blog/2026/05/php-tek-homecoming">PHP Tek: A Homecoming by Ben Ramsey</a></li>
<li><a href="https://roave.com/tek-roundup/">Tek Roundup &#8211; Roave</a></li>
<li><a href="https://youtube.com/shorts/Eu7Pu7DgGy0">Speaking at PHP Tek 2026! <img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f3a4.png" alt="🎤" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/2728.png" alt="✨" class="wp-smiley" style="height: 1em; max-height: 1em;" /> #tech &#8211; YouTube</a></li>
</ul>
<h4><strong>PHP Tek is behind us, the ballroom is cleaned up, and we&#8217;re back to talk about all of it. Here&#8217;s what we covered:</strong></h4>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f916.png" alt="🤖" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>RIP Archie Bot</strong><br />
After a long fight to keep him alive, Eric has officially retired Archie — the Discord bot built on OpenClaw that handled team standups, monitored PHP Architect&#8217;s Twitter/X group for join requests, and did a surprising amount of background work for the consulting team. When Anthropic shut down the OpenClaw API, Eric tried every model and service he could find to bring Archie back to form, but nothing got him all the way there. After a month of &#8220;almost working,&#8221; the call was made. He&#8217;s dead. Eric hasn&#8217;t ruled out revisiting it eventually — maybe with Claude Cowork — but for now, the bot is gone and the starting-soon link in Discord is broken because of it.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f527.png" alt="🔧" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Reviving a Six-Year-Old Codebase</strong><br />
A client PHP Architect Consulting worked with from 2018 to 2021 has come back. The project — a reimagining of their app — was killed off when COVID hit and the CEO couldn&#8217;t align with the team&#8217;s vision. The last commit was six years ago. Now the client wants to bring it back, and Eric is spending the next few days analyzing what it&#8217;ll take to get it running again. Outdated packages, an old PHP version, and the general entropy of time are all on the checklist. Eric has genuine affection for this codebase — it was one of the first projects where he felt like the team was truly operating as a team, not just as an extension of him. Now it&#8217;s time to dust it off.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f4ca.png" alt="📊" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Partner Spotlight: PHP Score → Our CVEs</strong><br />
The PHP Score sponsor read may be getting a refresh — the folks at Artisan Build, who built PHP Score, have a new product they&#8217;re excited about: <strong><a href="https://ourcves.com">ourCVEs.com</a></strong>. It monitors your codebase&#8217;s Composer and NPM packages — and optionally your servers via a lightweight agent — for exposure to open CVEs, and alerts you when something needs attention. Pricing is generous: free forever for open source projects, $17/month for solo devs, $83/month for teams (or $1,000/year), with server monitoring scaling at $1 per server above 50. Ed from Artisan Build was at PHP Tek and made a strong impression. Go check it out at <a href="https://ourcves.com">ourcves.com</a>.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f510.png" alt="🔐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>How PHP Barely Avoided a Supply Chain Disaster</strong><br />
Brent Roose released a 22-minute video covering a near-miss in the PHP ecosystem involving GitHub and Composer. The short version: GitHub changed their token format and briefly released it before Composer was ready to handle it. Composer was logging the token when the format check failed — meaning GitHub tokens were ending up in CI logs. In GitHub Actions, depending on how your action is configured, that container (and its token) might stick around for a while, giving an attacker a window to act. An alert developer caught the issue, used Claude to help research it, then did responsible disclosure — contacting the Composer maintainers and reaching out to Taylor Otwell, Vincent Pontier, and others in the ecosystem to disable their actions until the fix was in place. Update your Composer. GitHub rolled back the new token format but won&#8217;t keep it rolled back forever.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f511.png" alt="🔑" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Packagist MFA and Account Security</strong><br />
Following up on the supply chain theme: Nils and Igor (Composer/Packagist maintainers) released a blog post on what they&#8217;re doing to improve supply chain security. The immediate ask for anyone publishing packages is to enable MFA on your Packagist account — it&#8217;s not required yet, but it will be. Eric went to check his own account, found MFA was already on, but noticed his username was still &#8220;diegodev&#8221; and he was using an old email. While updating it, he noted that Packagist didn&#8217;t require him to re-authenticate or confirm the change via the old email — a gap worth flagging if you have popular packages and someone ever gets into your session.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f418.png" alt="🐘" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>PHP Tek 2026 Recap — The Good</strong><br />
PHP Tek 2026 in Chicago is done, and despite everything (see below), the team is proud of how it went. Some highlights:</p>
<p>Holly (CodeLorax) built a conference mobile app from scratch, released on both Google Play and the Apple App Store within 24 hours of the conference opening. The app let attendees build their own schedule, detected conflicting talk selections, sent push notifications when talks moved rooms, and even included a vendor lead-scanning feature where vendors could scan attendee QR codes to capture contacts. It was a genuine game-changer for the event. Eric and John named the conference elephant after Holly in appreciation — she also changed a trailer tire during setup, which sealed the deal.</p>
<p>Clayton Kendall sponsored and produced the conference shirts and bags on an extremely tight timeline — shirts two weeks out, bags just one week before the event. Both were a hit. Attendees at the conference were getting questions about the rainbow PHP Architect shirt in particular.</p>
<p>A job fair ran for the first time, with four companies represented. One hiring manager showed up even though they already had 1,400 applicants — because they knew that conference attendees are exactly the kind of motivated, self-improving developers they want. Attendees got to ask questions directly, including the real-world stuff like remote vs. office. Eric would love feedback on how to make it better next year.</p>
<p>JS Tech debuted as a fourth track alongside the three PHP tracks, bringing in fresh faces from the JavaScript community. Eric came away energized by the cross-pollination — different people, different approaches to similar problems.</p>
<p>Ben Ramsey and James Tickham (Rove) both wrote great blog posts about the conference. Ben&#8217;s will be featured in the magazine. Diana Pham also put together a video recap. Links in the show notes.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f691.png" alt="🚑" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>PHP Tek 2026 Recap — The Incident</strong><br />
On Monday during final setup, a hotel employee had a medical incident while walking through the main ballroom — leaving a trail that required hazmat-suited cleanup crews and forced the team to quarantine the ballroom, the hallway leading to it, and the adjacent bathroom. The person is okay and was back at the hotel by Friday, which was a relief. But in the moment, nobody knew what was happening or how long the room would be unavailable.</p>
<p>The team had to rebuild the entire conference footprint overnight. The keynote moved, the JS Tech track went into the quiet room, vendors moved to the atrium, and the hotel staff — to their enormous credit — cleared their own furniture and accommodated every ask without complaint. Attendees were equally patient; once they understood the situation, there was no drama, just &#8220;tell us where to go.&#8221;</p>
<p>The incident also took out the streaming setup for day one, compounding an already-difficult start. The solution that eventually worked — plugging the Ethernet into a hub before the streaming equipment — wasn&#8217;t tried until day three. Eric is mad at himself for thinking of it and not doing it sooner.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f4c5.png" alt="📅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>PHP Tek 2027 — Save the Date (TBD)</strong><br />
Planning for next year is already underway. The current target is April 2027 — away from the May timing that caused Eric to miss two of his kid&#8217;s band performances this year. Nothing is locked yet, but they&#8217;re working through venue and date options and hope to have an announcement soon.</p>
<h3>Links from the show:</h3>
<ul>
<li><a href="https://ourcves.com">ourCVEs.com — Daily security audit on autopilot</a></li>
<li><a href="https://phpscore.com">PHPScore — Technical debt monitoring for PHP</a></li>
<li><a href="https://www.youtube.com/@brentroose">Brent Roose — &#8220;How PHP Barely Avoided Disaster&#8221; (YouTube)</a></li>
<li><a href="https://packagist.org">Packagist — Enable MFA on your account</a></li>
<li><a href="https://discord.phparch.com">PHP Architect Discord</a></li>
<li><a href="https://store.phparch.com">PHP Architect Merch Store</a></li>
<li><a href="https://youtube.com/phparch">PHP Architect YouTube</a></li>
</ul>
<h2>Host:</h2>
<h3>Eric Van Johnson</h3>
<ul>
<li>X: <a href="https://x.com/shocm">@shocm</a></li>
<li>Mastodon: <a href="https://phparch.social/@eric">@eric@phparch.social</a></li>
<li>Bluesky: <a href="https://bsky.app/profile/ericvanjohnson.bsky.social">@ericvanjohnson.bsky.social</a></li>
<li><a href="http://PHPArch.me">PHPArch.me</a>: <a href="https://phparch.me/@eric">@eric</a></li>
</ul>
<h3>John Congdon</h3>
<ul>
<li>X: <a href="https://x.com/johncongdon">@johncongdon</a></li>
<li>Mastodon: <a href="https://phparch.social/@john">@john@phparch.social</a></li>
<li>Bluesky: <a href="https://bsky.app/profile/johncongdon.bsky.social">@johncongdon.bsky.social</a></li>
<li><a href="http://PHPArch.me">PHPArch.me</a>: <a href="https://phparch.me/@john">@john</a></li>
</ul>
<h2>Streams:</h2>
<ul>
<li style="list-style-type: none;">
<ul>
<li><a href="https://www.youtube.com/phparch">Youtube Channel</a></li>
<li><a href="https://www.twitch.tv/phparch">Twitch</a></li>
</ul>
</li>
</ul>
<h2><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f4ec.png" alt="📬" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Connect &amp; Hire</h2>
<div class="social-links"><a href="https://phparch.com" target="_blank" rel="noopener">PHP Architect Website</a><br />
<a href="https://x.com/phparch" target="_blank" rel="noopener">Twitter/X</a><br />
<a href="https://phparch.social/@phparch" target="_blank" rel="noopener">Mastodon</a><br />
<a href="mailto:support@phparch.com">Hire PHP Developers</a></div>
<p><strong>Looking to hire PHP developers?</strong> Email <a href="mailto:support@phparch.com">support@phparch.com</a> &#8211; Joe and the team are available for consulting, infrastructure work, Ansible playbooks, and code review.</p>
<h1>Partner</h1>
<p>This podcast is made a little better thanks to our partners</p>
<p><strong><a href="https://displace.tech/">Displace</a></strong><br />
<img loading="lazy" decoding="async" class="wp-image-18480 alignleft" src="https://www.phparch.com/wp-content/uploads/2025/09/archived-version-phparch-logos-512-x-512-px-300x300.png" alt="" width="173" height="173" srcset="https://www.phparch.com/wp-content/uploads/2025/09/archived-version-phparch-logos-512-x-512-px-300x300.png 300w, https://www.phparch.com/wp-content/uploads/2025/09/archived-version-phparch-logos-512-x-512-px-150x150.png 150w, https://www.phparch.com/wp-content/uploads/2025/09/archived-version-phparch-logos-512-x-512-px-160x160.png 160w, https://www.phparch.com/wp-content/uploads/2025/09/archived-version-phparch-logos-512-x-512-px-50x50.png 50w, https://www.phparch.com/wp-content/uploads/2025/09/archived-version-phparch-logos-512-x-512-px-120x120.png 120w, https://www.phparch.com/wp-content/uploads/2025/09/archived-version-phparch-logos-512-x-512-px.png 512w" sizes="auto, (max-width: 173px) 100vw, 173px" /></p>
<p>&nbsp;</p>
<p>Infrastructure Management, Simplified<br />
Automate Kubernetes deployments across any cloud provider or bare metal with a single command. Deploy, manage, and scale your infrastructure with ease.<br />
<a href="https://displace.tech/">https://displace.tech/</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong><a href="https://phpscore.com/">PHPScore</a></strong><br />
<img loading="lazy" decoding="async" class="size-full wp-image-18481 alignleft" src="https://www.phparch.com/wp-content/uploads/2025/09/Screenshot-2025-09-18-at-5.17.47 PM.png" sizes="auto, (max-width: 212px) 100vw, 212px" srcset="https://www.phparch.com/wp-content/uploads/2025/09/Screenshot-2025-09-18-at-5.17.47 PM.png 212w, https://www.phparch.com/wp-content/uploads/2025/09/Screenshot-2025-09-18-at-5.17.47 PM-160x37.png 160w" alt="" width="212" height="49" /></p>
<p>Put Your Technical Debt on Autopay with <a href="https://phpscore.com/">PHPScore</a></p>
<p>&nbsp;</p>
<p><strong><a href="https://www.coderabbit.ai/brand">CodeRabbit</a></strong><br />
<img loading="lazy" decoding="async" class="wp-image-18968 alignleft" src="https://www.phparch.com/wp-content/uploads/2026/01/show-300x157.png" alt="CodeRabbit - cut code review time &amp; bugs in half Instantly." width="204" height="107" srcset="https://www.phparch.com/wp-content/uploads/2026/01/show-300x157.png 300w, https://www.phparch.com/wp-content/uploads/2026/01/show-160x84.png 160w, https://www.phparch.com/wp-content/uploads/2026/01/show.png 553w" sizes="auto, (max-width: 204px) 100vw, 204px" /></p>
<p>&nbsp;</p>
<p>Cut code review time &amp; bugs in half instantly with <a href="https://www.coderabbit.ai/">CodeRabbit</a>.</p>
<h4></h4>
<p>&nbsp;</p>
<h4>Music Provided by <a href="https://www.epidemicsound.com/">Epidemic Sound </a></h4>
<p><a href="https://www.epidemicsound.com/">https://www.epidemicsound.com/</a></p>
<h2><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f3af.png" alt="🎯" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Join Us Live Next Week</h2>
<p><b><a href="https://www.youtube.com/phparch">Youtube Channel</a></b></p>
<hr />
<p><em>Got feedback? Join us on Discord at <a href="https://discord.phparch.com">discord.phparch.com</a></em></p>
<p>The post <a href="https://www.phparch.com/podcast/the-php-podcast-2026-05-28/">The PHP Podcast 2026.05.28</a> appeared first on <a href="https://www.phparch.com">PHP Architect</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Branching Workflows: Choosing the Right Git Strategy for Your Team</title>
		<link>/2026/05/branching-workflows-choosing-the-right-git-strategy-for-your-team/</link>
					<comments>/2026/05/branching-workflows-choosing-the-right-git-strategy-for-your-team/#respond</comments>
		
		<dc:creator><![CDATA[Scott Keck-Warren]]></dc:creator>
		<pubDate>Wed, 27 May 2026 19:55:35 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">/?p=19415</guid>

					<description><![CDATA[<p><img src="/wp-content/uploads/2026/05/Branching-Workflows.png" alt="" /></p>
<p>Video version at: https://youtu.be/R_-NG_frTiw Last month, two developers on a team I was working with both merged their branches to main within minutes of each other. The first merge was fine but the the second introduced a conflict in a shared service class that nobody caught until the CI pipeline deployed a broken build to [&#8230;]</p>
<p>The post <a href="/2026/05/branching-workflows-choosing-the-right-git-strategy-for-your-team/">Branching Workflows: Choosing the Right Git Strategy for Your Team</a> appeared first on <a href="https://www.phparch.com">PHP Architect</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img src="/wp-content/uploads/2026/05/Branching-Workflows.png" alt="" /></p><p>Video version at: <a href="https://youtu.be/R_-NG_frTiw">https://youtu.be/R_-NG_frTiw</a></p>
<p>Last month, two developers on a team I was working with both merged their branches to <code>main</code> within minutes of each other. The first merge was fine but the the second introduced a conflict in a shared service class that nobody caught until the <a href="https://www.phparch.com/2023/08/continuous-integration-and-continuous-delivery/">CI</a> pipeline deployed a broken build to production.</p>
<p>The team scrambled to fix it, but while they were debugging, a customer reported a billing bug in production. The hotfix for that billing bug couldn&#8217;t go out cleanly because the broken feature code was already tangled into <code>main</code>. What should have been a 1-minute rollback turned into a two-hour fire drill.</p>
<p>After a lengthy discussion, it was determined that the root cause wasn&#8217;t the conflict itself. Instead, it was agreed that the teams&#8217; branching workflow, or lack thereof, was the culprit. Everyone was merging to <code>main</code> whenever they felt like it, with no structure around releases, hotfixes, or feature isolation.</p>
<p>In this article, we&#8217;re going to discuss different branching workflows and how your team (even if you&#8217;re a team of one with an AI assistant) can take advantage of them.</p>
<h2>Git Flow: The Structured Approach</h2>
<p>Git Flow is built around two long-lived branches and several short-lived supporting branches, and it works well for teams that ship versioned releases on a schedule, like a PHP library, a product with release cycles, or if you need to do a lot of manual testing before a release.</p>
<p><img loading="lazy" decoding="async" src="https://www.phparch.com/wp-content/uploads/2026/05/mermaid-diagram-2026-05-27-154712-1.png" alt="" width="300" height="193" class="alignnone size-medium wp-image-19421" srcset="https://www.phparch.com/wp-content/uploads/2026/05/mermaid-diagram-2026-05-27-154712-1.png 1422w, https://www.phparch.com/wp-content/uploads/2026/05/mermaid-diagram-2026-05-27-154712-1-300x193.png 300w, https://www.phparch.com/wp-content/uploads/2026/05/mermaid-diagram-2026-05-27-154712-1-1024x659.png 1024w, https://www.phparch.com/wp-content/uploads/2026/05/mermaid-diagram-2026-05-27-154712-1-768x494.png 768w, https://www.phparch.com/wp-content/uploads/2026/05/mermaid-diagram-2026-05-27-154712-1-160x103.png 160w" sizes="auto, (max-width: 300px) 100vw, 300px" /></p>
<p>The <code>main</code> branch always reflects what is running in production. The <code>develop</code> branch is where completed features accumulate before a release. Feature branches come off <code>develop</code> and merge back into <code>develop</code> when done.</p>
<p>A typical feature looks like this:</p>
<pre><code class="language-bash hljs"><span class="hljs-comment"># Start a new feature from develop</span>
git checkout develop
git pull origin develop
git checkout -b feature/invoice-pdf

<span class="hljs-comment"># Do your work, commit along the way</span>
git add src/Invoice/PdfGenerator.php
git commit -m <span class="hljs-string">"Add PdfGenerator class for invoice exports"</span>

<span class="hljs-comment"># When the feature is complete, merge back to develop</span>
git checkout develop
git pull origin develop
git merge feature/invoice-pdf
git push origin develop

<span class="hljs-comment"># Clean up</span>
git branch -d feature/invoice-pdf
</code></pre>
<p>When the team is ready to ship, they create a release branch from <code>develop</code>:</p>
<pre><code class="language-bash hljs"><span class="hljs-comment"># Create a release branch</span>
git checkout develop
git checkout -b release/1.2

<span class="hljs-comment"># Fix any last-minute issues on the release branch</span>
git commit -m <span class="hljs-string">"Bump version to 1.2.0"</span>

<span class="hljs-comment"># Merge into main and tag it</span>
git checkout main
git merge release/1.2
git tag -a v1.2.0 -m <span class="hljs-string">"Release 1.2.0"</span>

<span class="hljs-comment"># Merge back into develop so it has the version bump</span>
git checkout develop
git merge release/1.2
</code></pre>
<p>If a production bug needs an emergency fix, a <code>hotfix</code> branch comes directly off <code>main</code> and merges back into both <code>main</code> and <code>develop</code>, so the fix exists in both places.</p>
<p>Git Flow gives you a lot of control, but it comes with overhead. You&#8217;re managing multiple long-lived branches and merge paths, which means more process for your team to follow. That being said, you might need to support multiple versions of your software, and this is an excellent way to do so.</p>
<p>We&#8217;ll have more about branching workflows after this word from our partners.</p>
<h2>GitHub Flow: One Branch, Keep It Simple</h2>
<p>GitHub Flow strips branching down to the minimum in that you have one long-lived branch (<code>main</code>) and short-lived feature branches.</p>
<p><img loading="lazy" decoding="async" src="https://www.phparch.com/wp-content/uploads/2026/05/mermaid-diagram-2026-05-27-155330-300x181.png" alt="" width="300" height="181" class="alignnone size-medium wp-image-19422" srcset="https://www.phparch.com/wp-content/uploads/2026/05/mermaid-diagram-2026-05-27-155330-300x181.png 300w, https://www.phparch.com/wp-content/uploads/2026/05/mermaid-diagram-2026-05-27-155330-1024x616.png 1024w, https://www.phparch.com/wp-content/uploads/2026/05/mermaid-diagram-2026-05-27-155330-768x462.png 768w, https://www.phparch.com/wp-content/uploads/2026/05/mermaid-diagram-2026-05-27-155330-160x96.png 160w, https://www.phparch.com/wp-content/uploads/2026/05/mermaid-diagram-2026-05-27-155330.png 1115w" sizes="auto, (max-width: 300px) 100vw, 300px" /></p>
<p>It commonly looks like the following:</p>
<ol>
<li>Create a branch from <code>main</code></li>
<li>Make your changes and commit</li>
<li>Open a pull request</li>
<li>Get a code review</li>
<li>Merge to <code>main</code></li>
<li>Deploy</li>
</ol>
<p>Or in command lines:</p>
<pre><code class="language-bash hljs"><span class="hljs-comment"># Start a feature</span>
git checkout main
git pull origin main
git checkout -b add-discount-codes

<span class="hljs-comment"># Work and commit</span>
git add src/Discount/DiscountService.php
git commit -m <span class="hljs-string">"Add DiscountService with percentage and fixed discounts"</span>

<span class="hljs-comment"># Push and open a pull request</span>
git push -u origin add-discount-codes
<span class="hljs-comment"># Open PR on GitHub, get review, then merge via the UI</span>
</code></pre>
<p>After the merge, <code>main</code> is deployed, automatically if possible.</p>
<p>The nice thing about this is that there&#8217;s no <code>develop</code> branch, no release branch, no version tags unless you want them. It makes it MUCH easier to manage the state of your Git repository, but it really is best if you only have one version of your codebase deployed.</p>
<p>GitHub Flow works well for teams practicing <a href="https://www.phparch.com/2023/08/continuous-integration-and-continuous-delivery/">CI/CD</a>, where every merge to <code>main</code> goes straight to production. Many PHP teams deploying Laravel or Symfony applications use this workflow because their release cadence is &#8220;whenever a feature is ready.&#8221;</p>
<p>The tradeoff is that <code>main</code> must always be deployable. If someone merges broken code, it goes to production. Your CI/CD pipeline and test suite need to catch problems before the merge happens, not after.</p>
<h2>Trunk-Based Development: Small Changes, Often</h2>
<p>Trunk-Based Development (TBD) takes the GitHub Flow idea further. Developers make small, frequent commits to <code>main</code> (the &#8220;trunk&#8221;), multiple times per day. Feature branches live for hours or less if possible.</p>
<p><img loading="lazy" decoding="async" src="https://www.phparch.com/wp-content/uploads/2026/05/mermaid-diagram-2026-05-27-155413-300x176.png" alt="" width="300" height="176" class="alignnone size-medium wp-image-19423" srcset="https://www.phparch.com/wp-content/uploads/2026/05/mermaid-diagram-2026-05-27-155413-300x176.png 300w, https://www.phparch.com/wp-content/uploads/2026/05/mermaid-diagram-2026-05-27-155413-1024x599.png 1024w, https://www.phparch.com/wp-content/uploads/2026/05/mermaid-diagram-2026-05-27-155413-768x450.png 768w, https://www.phparch.com/wp-content/uploads/2026/05/mermaid-diagram-2026-05-27-155413-160x94.png 160w, https://www.phparch.com/wp-content/uploads/2026/05/mermaid-diagram-2026-05-27-155413.png 1271w" sizes="auto, (max-width: 300px) 100vw, 300px" /></p>
<p>A common misconception is that TBD means &#8220;no branches ever.&#8221; Developers still create short-lived branches for pull requests. The difference is that those branches get merged within a day, not left open for a week.</p>
<p>Features that take longer than a day to build are handled with feature flags:</p>
<pre><code class="language-php hljs"><span class="hljs-meta">&lt;?php</span>
<span class="hljs-comment">// In your controller or service</span>
<span class="hljs-keyword">if</span> (FeatureFlag::isEnabled(<span class="hljs-string">"new-checkout-flow"</span>)) {
    <span class="hljs-keyword">return</span> <span class="hljs-keyword">$this</span>-&gt;newCheckoutProcess(<span class="hljs-variable">$cart</span>);
}

<span class="hljs-keyword">return</span> <span class="hljs-keyword">$this</span>-&gt;legacyCheckoutProcess(<span class="hljs-variable">$cart</span>);
</code></pre>
<p>With feature flags, you can merge incomplete features into <code>main</code> without exposing them to users. The code is in production, but the flag keeps it hidden until the feature is finished and tested. When you&#8217;re ready, you flip the flag, and the feature goes live without a deployment.</p>
<p>The git commands for TBD are almost identical to GitHub Flow:</p>
<pre><code class="language-bash hljs">git checkout main
git pull origin main
git checkout -b short-lived/checkout-step-one

<span class="hljs-comment"># Small, focused change</span>
git add src/Checkout/ShippingCalculator.php
git commit -m <span class="hljs-string">"Add ShippingCalculator for new checkout flow (behind flag)"</span>
git push -u origin short-lived/checkout-step-one

<span class="hljs-comment"># Open PR, get quick review, merge same day</span>
</code></pre>
<p>TBD requires a high level of discipline and good automated testing. If your test suite takes 45 minutes to run, merging multiple times a day becomes harder. Teams using TBD typically invest heavily in fast CI pipelines and comprehensive test coverage.</p>
<h2>Choosing the Right Workflow</h2>
<p>Choosing the right workflow can be a real challenge; it depends on your release process, your team size, and how mature your deployment setup is.</p>
<p>If your project ships numbered versions or on a regular cadence, then Git Flow works. That&#8217;s teams maintaining a PHP package on Packagist, or shipping a new version every two weeks with a formal QA cycle. You need the structure to manage concurrent development and release preparation, and Git Flow gives you exactly that.</p>
<p>If your team deploys continuously and every merge goes to production, GitHub Flow is the better match. Most web application teams, especially those running Laravel or Symfony apps, fall here. Releases happen whenever a feature is ready, not on a calendar. For smaller teams (two to eight developers) with an automated deployment pipeline, GitHub Flow removes overhead without introducing risk.</p>
<p>Trunk-Based Development makes sense when your team has fast test suites, strong CI/CD practices, and a habit of making small, incremental changes. It works especially well for larger teams where long-lived branches would generate constant merge conflicts. The tradeoff: you need to invest in testing infrastructure and feature flags upfront. If your tests take 45 minutes to run, merging multiple times a day is painful before you fix that problem.</p>
<h2>Gotchas</h2>
<p>As with all things that involve squishy humans, there are some potential gotchas with this.</p>
<p>If half your team thinks you&#8217;re doing GitHub Flow and the other half are creating <code>develop</code> and <code>release</code> branches, you&#8217;ll end up with a confusing mess. Document your workflow in your project&#8217;s README or CONTRIBUTING file, or enforce it using protected branches. This sounds obvious, but it gets skipped constantly.</p>
<p>Long-lived feature branches cause problems in any workflow. The longer a branch lives, the more it diverges from <code>main</code>, and the harder the merge becomes. Rebase or merge <code>main</code> into your feature branch at least once a day to keep conflicts small.</p>
<p>Watch out for &#8220;it&#8217;s just a small change&#8221; commits bypassing the process. Small changes can still break things. A one-line typo in a change can take down the global economy as your &#8220;quick fix&#8221; causes millions of computers to reboot over and over again. Keep your review process consistent regardless of the change size.</p>
<h2>What You Need To Know</h2>
<ol>
<li>A branching workflow is an agreed-upon set of rules for how your team creates, names, and merges branches.</li>
<li>Git Flow uses <code>main</code>, <code>develop</code>, <code>feature</code>, <code>release</code>, and <code>hotfix</code> branches. It fits teams with scheduled, versioned releases.</li>
<li>GitHub Flow is <code>main</code> plus short-lived feature branches and pull requests. Deploy on every merge.</li>
<li>Trunk-Based Development means very short-lived branches (merged within a day) with feature flags to hide incomplete work.</li>
<li>Pick the workflow that matches your release cadence and CI/CD maturity. Write it down somewhere.</li>
</ol>
<p>The post <a href="/2026/05/branching-workflows-choosing-the-right-git-strategy-for-your-team/">Branching Workflows: Choosing the Right Git Strategy for Your Team</a> appeared first on <a href="https://www.phparch.com">PHP Architect</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>/2026/05/branching-workflows-choosing-the-right-git-strategy-for-your-team/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>The PHP Podcast 2026.05.14</title>
		<link>https://www.phparch.com/podcast/the-php-podcast-2026-05-14/</link>
		
		<dc:creator><![CDATA[Eric Van Johnson]]></dc:creator>
		<pubDate>Fri, 15 May 2026 01:18:37 +0000</pubDate>
				<category><![CDATA[PHP Architect]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[The PHP Podcast]]></category>
		<guid isPermaLink="false">https://www.phparch.com/?post_type=podcast&#038;p=19405</guid>

					<description><![CDATA[<p><img src="/wp-content/uploads/2026/05/The-PHP-Podcast-2026.05.14.png" alt="" /></p>
<p>🎙️ PHP Podcast &#8211; May 14, 2026 Hosts: Eric Van Johnson &#38; John Congdon Another fun episode of the PHP Podcast! Here&#8217;s what we covered: 🎙️ PHP Tek Is Four Days Away The countdown clock is basically ticking in real time — PHP Tek 2026 in Chicago is just four days and ten hours out [&#8230;]</p>
<p>The post <a href="https://www.phparch.com/podcast/the-php-podcast-2026-05-14/">The PHP Podcast 2026.05.14</a> appeared first on <a href="https://www.phparch.com">PHP Architect</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img src="/wp-content/uploads/2026/05/The-PHP-Podcast-2026.05.14.png" alt="" /></p><p><!-- PHP Podcast Show Notes Template --></p>
<p style="text-align: center;"><iframe loading="lazy" class="custom-youtube-iframe" title="The PHP Podcast 2026.05.14" src="https://www.youtube.com/embed/VyHrdCv9QRI" width="1020" height="630" frameborder="0" allowfullscreen="allowfullscreen"><br />
<span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start"> </span><br />
</iframe></p>
<h1><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f399.png" alt="🎙" class="wp-smiley" style="height: 1em; max-height: 1em;" /> PHP Podcast &#8211; May 14, 2026</h1>
<p><strong>Hosts:</strong> Eric Van Johnson &amp; John Congdon</p>
<h4><strong>Another fun episode of the PHP Podcast! Here&#8217;s what we covered:</strong></h4>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f399.png" alt="🎙" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>PHP Tek Is Four Days Away</strong><br />
The countdown clock is basically ticking in real time — PHP Tek 2026 in Chicago is just four days and ten hours out as this episode begins. Eric flies Friday, John flies Saturday, and the team descends on the venue Sunday to get the trailer unloaded, the booth assembled, and everything tested before the conference kicks off. The conference magazines — ordered three weeks ago and still showing &#8220;printing&#8221; on Tuesday — pulled through at the last minute and are set to arrive at the venue tomorrow. That&#8217;s cutting it close, but it counts.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f3ab.png" alt="🎫" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Win a Free PHP Tek Ticket — Live on Air</strong><br />
John put a full conference ticket up for grabs: DM him on any social platform, and he&#8217;d draw a winner on the live stream. The caveat? You had to be watching live — audio listeners are out of luck on this one. The lucky winner drawn on air was Jeffrey Davidson, who will now be at PHP Tek. Eric offered to even bring him to the team&#8217;s Saturday minor league baseball game if he flies in early enough. Jeffrey gets a hand-printed sticker name badge, but he&#8217;ll have a badge.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f455.png" alt="👕" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>New PHP Architect Conference Merch</strong><br />
Fresh shirts are coming to the PHP Tek booth courtesy of Clayton Kendall, who is producing the apparel. The new design goes with a smaller logo placement — a more subtle, wearable-anywhere look compared to the big bold prints. If you&#8217;re headed to Chicago, swing by the PHP Architect table and see what&#8217;s there.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f4f1.png" alt="📱" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Holly&#8217;s Conference App Gets a Vendor Mode</strong><br />
The PHP Tek attendee app built by Holly (developed by CodeLorax) has been upgraded ahead of the conference. What started as a schedule browser with conflict detection and push notifications has now merged with a vendor lead scanning tool. Attendees can log in by scanning the QR code on their badge, and vendors can scan attendee badges to capture leads — all in a privacy-preserving way that doesn&#8217;t expose raw contact data. Eric&#8217;s wife Bek figured out the app entirely on her own without being told anything, which remains one of the best usability endorsements you can give.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f92b.png" alt="🤫" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Something Big Is Happening in the PHP Community</strong><br />
Eric teased something he can&#8217;t officially talk about yet — a community acquisition that&#8217;s still working through the legal and DNS transfer process. A new droplet has been created. Joe has already figured out what it is. Eric is too excited not to bring it up but too responsible to spill the details before it&#8217;s official. The plan is to announce after PHP Tek. If you want to know early, apparently getting Joe drunk at the conference is your best strategy.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f916.png" alt="🤖" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Grok AI Exploited via Morse Code in Bank Transactions</strong><br />
A video from the Dave&#8217;s Garage YouTube channel surfaced a genuinely unsettling AI exploit: someone used a Grok-powered AI banking agent and embedded hidden instructions inside transaction memo fields — written in Morse code. The agent decoded the dots and dashes, interpreted them as instructions, and followed them, ultimately losing somewhere between $154,000 and $200,000 in crypto transfers. This is prompt injection in its most creative and alarming form yet. The attack surface for AI agents hooked into real financial systems is not theoretical — it&#8217;s happening.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/26a0.png" alt="⚠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>TanStack Hit by NPM Supply Chain Attack</strong><br />
The TanStack ecosystem — the popular query, router, and table libraries — was hit by a supply chain attack via GitHub Actions cache poisoning. The attack vector was a forked pull request: a malicious fork can trigger GitHub Actions workflows and potentially inject poisoned artifacts into the build cache, which then get picked up by the legitimate package. Simon Hamp from NativePHP caught it and raised the alarm in the PHP Architect Discord. It&#8217;s a good reminder that the supply chain attack surface extends well beyond just what&#8217;s in your `composer.json` or `package.json` — your CI pipeline&#8217;s caching behavior matters too.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f4bc.png" alt="💼" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>PHP Tek Job Fair — Wednesday Afternoon</strong><br />
There will be a job fair at PHP Tek this year, scheduled for Wednesday afternoon. At least one confirmed hiring manager will be there. If you&#8217;re looking for PHP work, or if you&#8217;re a company looking for PHP talent, this is worth planning around. Eric and John both see it as a natural fit for the conference — the PHP community is tight-knit enough that a job fair actually means something.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f6c1.png" alt="🛁" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Eric&#8217;s Birthday Spa Day in Palm Springs</strong><br />
Eric&#8217;s wife Bek surprised him with a birthday spa day in Palm Springs. It was his first massage ever, and he paired it with a mineral soak in the natural springs. He came away thoroughly convinced — the combination of the mineral water and a proper massage left him feeling better than he expected, and he&#8217;s already thinking about going back. Beck planned the whole thing, and Eric was appropriately grateful.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f486.png" alt="💆" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>John&#8217;s First Couples Massage</strong><br />
John has now also had his first couples massage, and it did not go quietly. He opted for deep tissue — which means the therapist was working hard — and his wife, in the room next door, was apparently convinced something was wrong based on the sounds coming through the wall. John described it as the kind of massage where you&#8217;re not entirely sure if you&#8217;re being helped or attacked, and the answer turns out to be both. He&#8217;d do it again.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/26be.png" alt="⚾" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>PHP Architect Becomes Padres Season Ticket Holders</strong><br />
Eric and John are now official San Diego Padres season ticket holders — their first year in the program. As first-timers, they&#8217;re at the very bottom of the seniority ladder, which means they were among the last to pick seats. John blames Eric for not signing up years ago. There&#8217;s an upcoming Wednesday day game against the Dodgers with available tickets if anyone in San Diego wants them — reach out to John.</p>
<h3>Links from the show:</h3>
<ul>
<li><a href="https://phptek.phparch.com">PHP Tek 2026 — Chicago</a></li>
<li><a href="https://tanstack.com">TanStack — Open Source Data Tools for the Web</a></li>
<li><a href="https://nativephp.com">NativePHP — Simon Hamp&#8217;s Native App Framework for PHP</a></li>
<li><a href="https://store.phparch.com">PHP Architect Store</a></li>
<li><a href="https://discord.phparch.com">PHP Architect Discord</a></li>
</ul>
<h2>Host:</h2>
<h3>Eric Van Johnson</h3>
<ul>
<li>X: <a href="https://x.com/shocm">@shocm</a></li>
<li>Mastodon: <a href="https://phparch.social/@eric">@eric@phparch.social</a></li>
<li>Bluesky: <a href="https://bsky.app/profile/ericvanjohnson.bsky.social">@ericvanjohnson.bsky.social</a></li>
<li><a href="http://PHPArch.me">PHPArch.me</a>: <a href="https://phparch.me/@eric">@eric</a></li>
</ul>
<h3>John Congdon</h3>
<ul>
<li>X: <a href="https://x.com/johncongdon">@johncongdon</a></li>
<li>Mastodon: <a href="https://phparch.social/@john">@john@phparch.social</a></li>
<li>Bluesky: <a href="https://bsky.app/profile/johncongdon.bsky.social">@johncongdon.bsky.social</a></li>
<li><a href="http://PHPArch.me">PHPArch.me</a>: <a href="https://phparch.me/@john">@john</a></li>
</ul>
<h2>Streams:</h2>
<ul>
<li style="list-style-type: none;">
<ul>
<li><a href="https://www.youtube.com/phparch">Youtube Channel</a></li>
<li><a href="https://www.twitch.tv/phparch">Twitch</a></li>
</ul>
</li>
</ul>
<h2><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f4ec.png" alt="📬" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Connect &amp; Hire</h2>
<div class="social-links"><a href="https://phparch.com" target="_blank" rel="noopener">PHP Architect Website</a><br />
<a href="https://x.com/phparch" target="_blank" rel="noopener">Twitter/X</a><br />
<a href="https://phparch.social/@phparch" target="_blank" rel="noopener">Mastodon</a><br />
<a href="mailto:support@phparch.com">Hire PHP Developers</a></div>
<p><strong>Looking to hire PHP developers?</strong> Email <a href="mailto:support@phparch.com">support@phparch.com</a> &#8211; Joe and the team are available for consulting, infrastructure work, Ansible playbooks, and code review.</p>
<h1>Partner</h1>
<p>This podcast is made a little better thanks to our partners</p>
<p><strong><a href="https://displace.tech/">Displace</a></strong><br />
<img loading="lazy" decoding="async" class="wp-image-18480 alignleft" src="https://www.phparch.com/wp-content/uploads/2025/09/archived-version-phparch-logos-512-x-512-px-300x300.png" alt="" width="173" height="173" srcset="https://www.phparch.com/wp-content/uploads/2025/09/archived-version-phparch-logos-512-x-512-px-300x300.png 300w, https://www.phparch.com/wp-content/uploads/2025/09/archived-version-phparch-logos-512-x-512-px-150x150.png 150w, https://www.phparch.com/wp-content/uploads/2025/09/archived-version-phparch-logos-512-x-512-px-160x160.png 160w, https://www.phparch.com/wp-content/uploads/2025/09/archived-version-phparch-logos-512-x-512-px-50x50.png 50w, https://www.phparch.com/wp-content/uploads/2025/09/archived-version-phparch-logos-512-x-512-px-120x120.png 120w, https://www.phparch.com/wp-content/uploads/2025/09/archived-version-phparch-logos-512-x-512-px.png 512w" sizes="auto, (max-width: 173px) 100vw, 173px" /></p>
<p>&nbsp;</p>
<p>Infrastructure Management, Simplified<br />
Automate Kubernetes deployments across any cloud provider or bare metal with a single command. Deploy, manage, and scale your infrastructure with ease.<br />
<a href="https://displace.tech/">https://displace.tech/</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong><a href="https://phpscore.com/">PHPScore</a></strong><br />
<img loading="lazy" decoding="async" class="size-full wp-image-18481 alignleft" src="https://www.phparch.com/wp-content/uploads/2025/09/Screenshot-2025-09-18-at-5.17.47 PM.png" sizes="auto, (max-width: 212px) 100vw, 212px" srcset="https://www.phparch.com/wp-content/uploads/2025/09/Screenshot-2025-09-18-at-5.17.47 PM.png 212w, https://www.phparch.com/wp-content/uploads/2025/09/Screenshot-2025-09-18-at-5.17.47 PM-160x37.png 160w" alt="" width="212" height="49" /></p>
<p>Put Your Technical Debt on Autopay with <a href="https://phpscore.com/">PHPScore</a></p>
<p>&nbsp;</p>
<p><strong><a href="https://www.coderabbit.ai/brand">CodeRabbit</a></strong><br />
<img loading="lazy" decoding="async" class="wp-image-18968 alignleft" src="https://www.phparch.com/wp-content/uploads/2026/01/show-300x157.png" alt="CodeRabbit - cut code review time &amp; bugs in half Instantly." width="204" height="107" srcset="https://www.phparch.com/wp-content/uploads/2026/01/show-300x157.png 300w, https://www.phparch.com/wp-content/uploads/2026/01/show-160x84.png 160w, https://www.phparch.com/wp-content/uploads/2026/01/show.png 553w" sizes="auto, (max-width: 204px) 100vw, 204px" /></p>
<p>&nbsp;</p>
<p>Cut code review time &amp; bugs in half instantly with <a href="https://www.coderabbit.ai/">CodeRabbit</a>.</p>
<h4></h4>
<p>&nbsp;</p>
<h4>Music Provided by <a href="https://www.epidemicsound.com/">Epidemic Sound </a></h4>
<p><a href="https://www.epidemicsound.com/">https://www.epidemicsound.com/</a></p>
<h2><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f3af.png" alt="🎯" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Join Us Live Next Week</h2>
<p><b><a href="https://www.youtube.com/phparch">Youtube Channel</a></b></p>
<hr />
<p><em>Got feedback? Join us on Discord at <a href="https://discord.phparch.com">discord.phparch.com</a></em></p>
<p>The post <a href="https://www.phparch.com/podcast/the-php-podcast-2026-05-14/">The PHP Podcast 2026.05.14</a> appeared first on <a href="https://www.phparch.com">PHP Architect</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Community Corner: Global Accessibility Awareness Day with Joe Devon</title>
		<link>https://www.phparch.com/podcast/community-corner-global-accessibility-awareness-day-with-joe-devon/</link>
		
		<dc:creator><![CDATA[Scott Keck-Warren]]></dc:creator>
		<pubDate>Thu, 14 May 2026 06:08:09 +0000</pubDate>
				<category><![CDATA[Community Corner]]></category>
		<guid isPermaLink="false">https://www.phparch.com/?post_type=podcast&#038;p=19399</guid>

					<description><![CDATA[<p><img src="/wp-content/uploads/2026/05/Global-Accessibility-Awareness-Day-with-Joe-Devon.png" alt="" /></p>
<p>﻿ In this episode, Scott talks Global Accessibility Awareness Day with Joe Devon the creator of the day. Links: Our Discord &#8211; https://discord.gg/aMTxunVx Buy our shirts &#8211; https://store.phparch.com/products/community-corner-podcast-t-shirt Joe&#8217;s Links: LinkedIn &#8211; https://www.linkedin.com/in/joedevon/ Global Accessibility Awareness Day &#8211; https://accessibility.day/ Accessibility and Gen AI Podcast &#8211; https://podcasts.apple.com/us/podcast/accessibility-and-gen-ai-podcast/id1759047581 Scott&#8217;s Links: Website &#8211; https://scott.keck-warren.com/ Bluesky &#8211; https://bsky.app/profile/scottkeckwarren.bsky.social LinkedIn [&#8230;]</p>
<p>The post <a href="https://www.phparch.com/podcast/community-corner-global-accessibility-awareness-day-with-joe-devon/">Community Corner: Global Accessibility Awareness Day with Joe Devon</a> appeared first on <a href="https://www.phparch.com">PHP Architect</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img src="/wp-content/uploads/2026/05/Global-Accessibility-Awareness-Day-with-Joe-Devon.png" alt="" /></p><p style="text-align: center;"><iframe loading="lazy" class="custom-youtube-iframe" title="Global Accessibility Awareness Day with Joe Devon
" src="https://www.youtube.com/embed/758c4PSg78c?si=YLOND-8Nej9XlJvc" width="1020" height="630" frameborder="0" allowfullscreen="allowfullscreen"><span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start">﻿</span></iframe></p>
<p>In this episode, Scott talks Global Accessibility Awareness Day with Joe Devon the creator of the day.</p>
<p>Links:</p>
<ul>
<li>Our Discord &#8211; <a href="https://discord.gg/aMTxunVx">https://discord.gg/aMTxunVx</a></li>
<li>Buy our shirts &#8211; <a href="https://store.phparch.com/products/community-corner-podcast-t-shirt">https://store.phparch.com/products/community-corner-podcast-t-shirt</a></li>
</ul>
<p>Joe&#8217;s Links:</p>
<ul>
<li>LinkedIn &#8211; <a href="https://www.linkedin.com/in/joedevon/">https://www.linkedin.com/in/joedevon/</a></li>
<li>Global Accessibility Awareness Day &#8211; <a href="https://accessibility.day/">https://accessibility.day/</a></li>
<li>Accessibility and Gen AI Podcast &#8211; <a href="https://podcasts.apple.com/us/podcast/accessibility-and-gen-ai-podcast/id1759047581">https://podcasts.apple.com/us/podcast/accessibility-and-gen-ai-podcast/id1759047581</a></li>
</ul>
<p>Scott&#8217;s Links:</p>
<ul>
<li>Website &#8211; <a href="https://scott.keck-warren.com/">https://scott.keck-warren.com/</a></li>
<li>Bluesky &#8211; <a href="https://bsky.app/profile/scottkeckwarren.bsky.social">https://bsky.app/profile/scottkeckwarren.bsky.social</a></li>
<li>LinkedIn &#8211; <a href="https://www.linkedin.com/in/scott-keck-warren-91689810/">https://www.linkedin.com/in/scott-keck-warren-91689810/</a></li>
<li>Mastodon &#8211; <a href="https://phpc.social/@scottkeckwarren">https://phpc.social/@scottkeckwarren</a></li>
</ul>
<p>PHP Architect Social Media:</p>
<ul>
<li>X: <a href="https://x.com/phparch">https://x.com/phparch</a></li>
<li>Mastodon: <a href="https://phparch.social/@phparch">https://phparch.social/@phparch</a></li>
<li>Bluesky: <a href="https://bsky.app/profile/phparch.com">https://bsky.app/profile/phparch.com</a></li>
<li>Discord: <a href="https://discord.phparch.com">https://discord.phparch.com</a></li>
</ul>
<p>Subscribe to our magazine: <a href="https://www.phparch.com/subscribe/">https://www.phparch.com/subscribe/</a></p>
<h2 id="partners">Partners</h2>
<p>This podcast is made a little better thanks to our partners.</p>
<h2 id="displace">Displace</h2>
<p>Infrastructure Management, Simplified<br />
Automate Kubernetes deployments across any cloud provider or bare metal with a single command. Deploy, manage, and scale your infrastructure with ease.<br />
<a href="https://displace.tech/">https://displace.tech/</a></p>
<h2 id="phpscore">PHPScore</h2>
<p>Put Your Technical Debt on Autopay with PHPScore<br />
<a href="https://phpscore.com/">https://phpscore.com/</a></p>
<h2 id="coderabit">CodeRabit</h2>
<p>CodeRabbit &#8211; Cut code review time &amp; bugs in half instantly with CodeRabbit.<br />
<a href="https://www.coderabbit.ai/">https://www.coderabbit.ai/</a></p>
<p>Music Provided by Epidemic Sound <a href="https://www.epidemicsound.com/">https://www.epidemicsound.com/</a></p>
<p>#phpc #php #communityCornerPodcast #podcast #phptek</p>
<p>The post <a href="https://www.phparch.com/podcast/community-corner-global-accessibility-awareness-day-with-joe-devon/">Community Corner: Global Accessibility Awareness Day with Joe Devon</a> appeared first on <a href="https://www.phparch.com">PHP Architect</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>The PHP Podcast 2026.05.07</title>
		<link>https://www.phparch.com/podcast/the-php-podcast-2026-05-07/</link>
		
		<dc:creator><![CDATA[Eric Van Johnson]]></dc:creator>
		<pubDate>Fri, 08 May 2026 02:02:39 +0000</pubDate>
				<category><![CDATA[PHP Architect]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[The PHP Podcast]]></category>
		<guid isPermaLink="false">https://www.phparch.com/?post_type=podcast&#038;p=19374</guid>

					<description><![CDATA[<p><img src="/wp-content/uploads/2026/05/The-PHP-Podcast-2026.05.07.png" alt="" /></p>
<p>🎙️ PHP Podcast &#8211; May 7, 2026 Hosts: Eric Van Johnson &#38; John Congdon Another fun episode of the PHP Podcast! Here&#8217;s what we covered: 🎪 PHP Tek Is 11 Days Away — And Everyone Is Stressed The conference countdown is real: 11 days, 10 hours, and a handful of seconds on the clock. John&#8217;s [&#8230;]</p>
<p>The post <a href="https://www.phparch.com/podcast/the-php-podcast-2026-05-07/">The PHP Podcast 2026.05.07</a> appeared first on <a href="https://www.phparch.com">PHP Architect</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img src="/wp-content/uploads/2026/05/The-PHP-Podcast-2026.05.07.png" alt="" /></p><p style="text-align: center;"><iframe loading="lazy" class="custom-youtube-iframe" title="The PHP Podcast 2026.05.07" src="https://www.youtube.com/embed/ZzMH-oWIPIM" width="1020" height="630" frameborder="0" allowfullscreen="allowfullscreen"><br />
<span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start"> </span><br />
</iframe></p>
<h1><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f399.png" alt="🎙" class="wp-smiley" style="height: 1em; max-height: 1em;" /> PHP Podcast &#8211; May 7, 2026</h1>
<p><strong>Hosts:</strong> Eric Van Johnson &amp; John Congdon</p>
<h4><strong>Another fun episode of the PHP Podcast! Here&#8217;s what we covered:</strong></h4>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f3aa.png" alt="🎪" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>PHP Tek Is 11 Days Away — And Everyone Is Stressed</strong><br />
The conference countdown is real: 11 days, 10 hours, and a handful of seconds on the clock. John&#8217;s travel plans hinge entirely on little league baseball — if his team wins their Tuesday playoff game, he coaches the Saturday game, then bolts for the airport. If they lose Tuesday, he&#8217;s sad but gets to Chicago earlier. Meanwhile, Eric is grinding through the PHP Tek TV redesign, trying to wire up the SessionIze API for schedule imports instead of doing it all manually from a CSV, and sending the design team a novel&#8217;s worth of badge and signage requests. Holly&#8217;s conference app now has notifications working: select a talk, and if Eric or John move it around, you&#8217;ll get pinged. Keynote and lunch notifications are also on the table for attendees who can never find the room.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f630.png" alt="😰" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Conference Stress Dreams: The Motorcycle Gunman Edition</strong><br />
John woke up mid-dream to his wife opening the blinds for the school run — and the dream he was pulled from was genuinely unhinged. He was in an Uber waiting for Uber Eats to arrive at an intersection when a motorcyclist pulled up behind them, got off, shot out the tire, then came to John&#8217;s door and started shooting at the lock to get in. The Uber app had briefly flashed the word &#8220;threat&#8221; on the map. John laid the seat back as far as it would go. The driver just stood there. Then the blinds opened and it was just a Thursday morning. John&#8217;s verdict: it&#8217;s conference stress. Hard to argue with that.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f39f.png" alt="🎟" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>JS Tek — An Honest Conversation</strong><br />
John decided to say the quiet part out loud: JS Tek hasn&#8217;t brought in the JavaScript community the way they hoped. The PHP world is unusual in paying for speaker travel and hotel rooms; Joe in Discord confirmed this barely happens outside PHP, and somebody speaking at a Ruby/Rails conference once told Eric they not only weren&#8217;t reimbursed for travel — they had to buy their own conference ticket. Eric&#8217;s takeaway: the JS track itself is a great idea for PHP developers, but trying to recruit an entirely new community into the fold didn&#8217;t work out. Next year&#8217;s structure will probably look different.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f527.png" alt="🔧" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>The PHP 7-to-8 Upgrade That Failed Three Times</strong><br />
Eric&#8217;s consulting team has been struggling with a client upgrade from PHP 7 to 8 — unusual, because they&#8217;ve done this many times and know the pitfalls. After three failed attempts, a deep dive revealed the culprit: an abandoned Laravel Shift branch left behind by a previous developer who had started an upgrade and walked away, with missing config files baked right into the inherited codebase. The fix wasn&#8217;t just another attempt — it was getting the management team to produce a proper testing playbook, and more importantly, actually getting trained on the application. The team had been fixing bugs in code they&#8217;d never seen working correctly. Today they finally got that training session, and Eric says the excitement and &#8220;ah-ha&#8221; moments from his developers made it clear this should have happened much sooner.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f5c4.png" alt="🗄" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>The Database on the Same Server Problem</strong><br />
A related discovery from the same client: the database lives on the same machine as the application. Every upgrade means shutting the app down, exporting the database, migrating it somewhere else, and starting over. Eric&#8217;s head doesn&#8217;t compute why this is still the case in 2026. Even a second machine designated as a database server would be a massive improvement. In a moment of uncomfortable honesty, Eric also admitted that PHP Architect&#8217;s own conference site has the same setup — Forge makes it so easy to throw a database on the same box that you just don&#8217;t think about it, until you do.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/2601.png" alt="☁" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Laravel Shift, Laravel Cloud, and the Pre-Check Tool</strong><br />
The conversation circled back to Laravel Shift — JMAC&#8217;s automated upgrade tool — which Eric notes has become less essential as Laravel&#8217;s upgrade paths have smoothed out considerably compared to the wild west of early Laravel development. But Shift is still out there and still useful. More interestingly, JMAC has a new free Shift specifically for Laravel Cloud readiness: run it against your app and it&#8217;ll tell you whether your application is compatible with Laravel Cloud&#8217;s serverless model, flag any system commands that won&#8217;t be available, and help you understand what services you&#8217;d need. Laravel Cloud itself is Taylor&#8217;s &#8220;don&#8217;t worry about servers&#8221; deployment platform, and if you&#8217;re not a sysops person, having a Shift that holds your hand through the setup could be the difference between trying it and not.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f418.png" alt="🐘" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>PHP Internals Made Readable — Externals and PHP RFC Watch</strong><br />
Eric plugged two tools for following what&#8217;s happening in PHP core. The first is externals.io — a much more readable front-end for the PHP internals mailing list, with search, read-tracking, and threaded discussions. The second is a newer discovery: php-rfc.watch, which focuses purely on RFCs, showing what&#8217;s active, what&#8217;s been voted on, and how the votes broke down. It&#8217;s more of a quick-glance dashboard than a full discussion forum. Eric also highlighted a specific RFC from Ben Ramsey: a proposal to update the PHP license, accompanied by a detailed blog post called &#8220;PHP License Simplified&#8221; that walks through the history and rationale. If you&#8217;ve ever been curious about why license choice matters (especially at the enterprise level where legal teams block open source based on license type), Ben&#8217;s post is worth the read.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/26a1.png" alt="⚡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>NeoVim&#8217;s Flash Plugin — Used Wrong for Years</strong><br />
Eric has been using Flash.nvim, a NeoVim navigation plugin, for years. He recently discovered he had been using it completely incorrectly the entire time. He thought he understood what it did. He did not. A YouTube video explaining the plugin properly (titled something like &#8220;How to Jump Anywhere Instantly in NeoVim&#8221;) revealed that what he&#8217;d been doing was essentially pressing the wrong keybinding and stumbling through a fraction of the plugin&#8217;s actual functionality. This sent the conversation into a longer Vim origin story: Eric learned Vim because he was flying around the country installing Cyborg firewalls on remote servers and Vi was just there. John picked it up at an enterprise job and never thought about alternatives until he saw a developer using MacVim to write Rails and had his mind blown. The core message: you can use a tool for decades and still be using it wrong, and that&#8217;s okay — but watch the tutorial.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f382.png" alt="🎂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Eric Doesn&#8217;t Know How Old He Is</strong><br />
Eric has been confidently telling people for a full year that he&#8217;s 55. His wife Bek has known for some time that this is not correct. The moment of reckoning came when Eric asked Alexa: &#8220;If I was born in 1969, how old would I be now?&#8221; Alexa hedged on the birthday thing but confirmed the range. Bek stepped in. Alexa, a full 30-60 seconds later, stepped back in and confirmed: &#8220;Your birthday&#8217;s May 8th, you&#8217;re turning 57.&#8221; Eric is apparently going directly from 55 to 57, having skipped 56 entirely. He also noted at the Padres game with his wife that their Costco membership is older than a 13-year-old kid they saw on the Jumbotron, and that it could legally babysit him. John is turning 50 this year. Everyone is fine.</p>
<h3>Links from the show:</h3>
<ul>
<li><a href="https://externals.io">externals.io — PHP Internals Discussion Reader</a></li>
<li><a href="https://php-rfc.watch">PHP RFC Watch — Track Active PHP RFCs</a></li>
<li><a href="https://blog.benramsey.com/blog/2026/04/php-license-simplified/">Ben Ramsey: PHP License Simplified</a></li>
<li><a href="https://laravelshift.com">Laravel Shift — Automated Laravel Upgrade Tool</a></li>
<li><a href="https://cloud.laravel.com">Laravel Cloud</a></li>
<li><a href="https://www.youtube.com/watch?v=dWtCVbuwC_8">How to Jump Anywhere Instantly in NeoVim (Flash.nvim Tutorial)</a></li>
<li><a href="https://phptek.phparch.com">PHP Tek 2026 — Chicago</a></li>
<li><a href="https://store.phparch.com">PHP Architect Store</a></li>
<li><a href="https://discord.phparch.com">PHP Architect Discord</a></li>
</ul>
<h2>Host:</h2>
<h3>Eric Van Johnson</h3>
<ul>
<li>X: <a href="https://x.com/shocm">@shocm</a></li>
<li>Mastodon: <a href="https://phparch.social/@eric">@eric@phparch.social</a></li>
<li>Bluesky: <a href="https://bsky.app/profile/ericvanjohnson.bsky.social">@ericvanjohnson.bsky.social</a></li>
<li><a href="http://PHPArch.me">PHPArch.me</a>: <a href="https://phparch.me/@eric">@eric</a></li>
</ul>
<h3>John Congdon</h3>
<ul>
<li>X: <a href="https://x.com/johncongdon">@johncongdon</a></li>
<li>Mastodon: <a href="https://phparch.social/@john">@john@phparch.social</a></li>
<li>Bluesky: <a href="https://bsky.app/profile/johncongdon.bsky.social">@johncongdon.bsky.social</a></li>
<li><a href="http://PHPArch.me">PHPArch.me</a>: <a href="https://phparch.me/@john">@john</a></li>
</ul>
<h2>Streams:</h2>
<ul>
<li style="list-style-type: none;">
<ul>
<li><a href="https://www.youtube.com/phparch">Youtube Channel</a></li>
<li><a href="https://www.twitch.tv/phparch">Twitch</a></li>
</ul>
</li>
</ul>
<h2><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f4ec.png" alt="📬" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Connect &amp; Hire</h2>
<div class="social-links"><a href="https://phparch.com" target="_blank" rel="noopener">PHP Architect Website</a><br />
<a href="https://x.com/phparch" target="_blank" rel="noopener">Twitter/X</a><br />
<a href="https://phparch.social/@phparch" target="_blank" rel="noopener">Mastodon</a><br />
<a href="mailto:support@phparch.com">Hire PHP Developers</a></div>
<p><strong>Looking to hire PHP developers?</strong> Email <a href="mailto:support@phparch.com">support@phparch.com</a> &#8211; Joe and the team are available for consulting, infrastructure work, Ansible playbooks, and code review.</p>
<h1>Partner</h1>
<p>This podcast is made a little better thanks to our partners</p>
<p><strong><a href="https://displace.tech/">Displace</a></strong><br />
<img loading="lazy" decoding="async" class="wp-image-18480 alignleft" src="https://www.phparch.com/wp-content/uploads/2025/09/archived-version-phparch-logos-512-x-512-px-300x300.png" alt="" width="173" height="173" srcset="https://www.phparch.com/wp-content/uploads/2025/09/archived-version-phparch-logos-512-x-512-px-300x300.png 300w, https://www.phparch.com/wp-content/uploads/2025/09/archived-version-phparch-logos-512-x-512-px-150x150.png 150w, https://www.phparch.com/wp-content/uploads/2025/09/archived-version-phparch-logos-512-x-512-px-160x160.png 160w, https://www.phparch.com/wp-content/uploads/2025/09/archived-version-phparch-logos-512-x-512-px-50x50.png 50w, https://www.phparch.com/wp-content/uploads/2025/09/archived-version-phparch-logos-512-x-512-px-120x120.png 120w, https://www.phparch.com/wp-content/uploads/2025/09/archived-version-phparch-logos-512-x-512-px.png 512w" sizes="auto, (max-width: 173px) 100vw, 173px" /></p>
<p>&nbsp;</p>
<p>Infrastructure Management, Simplified<br />
Automate Kubernetes deployments across any cloud provider or bare metal with a single command. Deploy, manage, and scale your infrastructure with ease.<br />
<a href="https://displace.tech/">https://displace.tech/</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong><a href="https://phpscore.com/">PHPScore</a></strong><br />
<img loading="lazy" decoding="async" class="size-full wp-image-18481 alignleft" src="https://www.phparch.com/wp-content/uploads/2025/09/Screenshot-2025-09-18-at-5.17.47 PM.png" alt="" width="212" height="49" srcset="https://www.phparch.com/wp-content/uploads/2025/09/Screenshot-2025-09-18-at-5.17.47 PM.png 212w, https://www.phparch.com/wp-content/uploads/2025/09/Screenshot-2025-09-18-at-5.17.47 PM-160x37.png 160w" sizes="auto, (max-width: 212px) 100vw, 212px" /></p>
<p>Put Your Technical Debt on Autopay with <a href="https://phpscore.com/">PHPScore</a></p>
<p>&nbsp;</p>
<p><strong><a href="https://www.coderabbit.ai/brand">CodeRabbit</a></strong><br />
<img loading="lazy" decoding="async" class="wp-image-18968 alignleft" src="https://www.phparch.com/wp-content/uploads/2026/01/show-300x157.png" alt="CodeRabbit - cut code review time &amp; bugs in half Instantly." width="204" height="107" srcset="https://www.phparch.com/wp-content/uploads/2026/01/show-300x157.png 300w, https://www.phparch.com/wp-content/uploads/2026/01/show-160x84.png 160w, https://www.phparch.com/wp-content/uploads/2026/01/show.png 553w" sizes="auto, (max-width: 204px) 100vw, 204px" /></p>
<p>&nbsp;</p>
<p>Cut code review time &amp; bugs in half instantly with <a href="https://www.coderabbit.ai/">CodeRabbit</a>.</p>
<h4></h4>
<p>&nbsp;</p>
<h4>Music Provided by <a href="https://www.epidemicsound.com/">Epidemic Sound </a></h4>
<p><a href="https://www.epidemicsound.com/">https://www.epidemicsound.com/</a></p>
<h2><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f3af.png" alt="🎯" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Join Us Live Next Week</h2>
<p><b><a href="https://www.youtube.com/phparch">Youtube Channel</a></b></p>
<hr />
<p><em>Got feedback? Join us on Discord at <a href="https://discord.phparch.com">discord.phparch.com</a></em></p>
<p>The post <a href="https://www.phparch.com/podcast/the-php-podcast-2026-05-07/">The PHP Podcast 2026.05.07</a> appeared first on <a href="https://www.phparch.com">PHP Architect</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Token-Oriented Object Notation (TOON) For PHP Developers</title>
		<link>/2026/05/token-oriented-object-notation-toon-for-php-developers/</link>
					<comments>/2026/05/token-oriented-object-notation-toon-for-php-developers/#respond</comments>
		
		<dc:creator><![CDATA[Scott Keck-Warren]]></dc:creator>
		<pubDate>Wed, 06 May 2026 15:31:28 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<guid isPermaLink="false">/?p=19393</guid>

					<description><![CDATA[<p><img src="/wp-content/uploads/2026/05/Token-Oriented-Object-Notation.png" alt="" /></p>
<p>See the video version at https://youtu.be/Nk9ayWxkJ1M It&#8217;s an unfortunate piece of our current developer reality that a lot of our day is spent worrying about how many tokens we&#8217;re spending. Every time you send structured data to an LLM API, you&#8217;re paying for tokens. And if you&#8217;re sending arrays of similar objects as JSON, you&#8217;re [&#8230;]</p>
<p>The post <a href="/2026/05/token-oriented-object-notation-toon-for-php-developers/">Token-Oriented Object Notation (TOON) For PHP Developers</a> appeared first on <a href="https://www.phparch.com">PHP Architect</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img src="/wp-content/uploads/2026/05/Token-Oriented-Object-Notation.png" alt="" /></p><p>See the video version at <a href="https://youtu.be/Nk9ayWxkJ1M">https://youtu.be/Nk9ayWxkJ1M</a></p>
<p>It&#8217;s an unfortunate piece of our current developer reality that a lot of our day is spent worrying about how many tokens we&#8217;re spending. Every time you send structured data to an LLM API, you&#8217;re paying for tokens. And if you&#8217;re sending arrays of similar objects as JSON, you&#8217;re paying to repeat the same field names for every single record. That&#8217;s not a bug in JSON, it&#8217;s just how the format works. But there&#8217;s a better option for this specific use case.</p>
<p>In this article, we&#8217;re going to look at Token-Oriented Object Notation (TOON) and how it strips that repetition out of your data.</p>
<h2>The problem</h2>
<p>Let&#8217;s say you&#8217;re tracking podcast episode statistics and you want to send that data to an LLM. Maybe you want it to flag underperforming episodes or summarize listening trends across your whole catalog. Here&#8217;s what a typical batch of episode records looks like in PHP:</p>
<pre><code class="language-php hljs"><span class="hljs-meta">&lt;?php</span>

<span class="hljs-variable">$episodes</span> = [
    [
        <span class="hljs-string">"id"</span> =&gt; <span class="hljs-number">1</span>,
        <span class="hljs-string">"title"</span> =&gt; <span class="hljs-string">"Getting Started with Laravel"</span>,
        <span class="hljs-string">"published_at"</span> =&gt; <span class="hljs-string">"2026-01-15"</span>,
        <span class="hljs-string">"downloads"</span> =&gt; <span class="hljs-number">4821</span>,
        <span class="hljs-string">"avg_listen_time"</span> =&gt; <span class="hljs-string">"34:12"</span>,
        <span class="hljs-string">"completion_rate"</span> =&gt; <span class="hljs-number">0.71</span>
    ],
    [
        <span class="hljs-string">"id"</span> =&gt; <span class="hljs-number">2</span>,
        <span class="hljs-string">"title"</span> =&gt; <span class="hljs-string">"PHP 8.4 New Features"</span>,
        <span class="hljs-string">"published_at"</span> =&gt; <span class="hljs-string">"2026-02-03"</span>,
        <span class="hljs-string">"downloads"</span> =&gt; <span class="hljs-number">6204</span>,
        <span class="hljs-string">"avg_listen_time"</span> =&gt; <span class="hljs-string">"41:55"</span>,
        <span class="hljs-string">"completion_rate"</span> =&gt; <span class="hljs-number">0.83</span>
    ],
    [
        <span class="hljs-string">"id"</span> =&gt; <span class="hljs-number">3</span>,
        <span class="hljs-string">"title"</span> =&gt; <span class="hljs-string">"Scaling MySQL for High Traffic"</span>,
        <span class="hljs-string">"published_at"</span> =&gt; <span class="hljs-string">"2026-02-24"</span>,
        <span class="hljs-string">"downloads"</span> =&gt; <span class="hljs-number">3109</span>,
        <span class="hljs-string">"avg_listen_time"</span> =&gt; <span class="hljs-string">"28:40"</span>,
        <span class="hljs-string">"completion_rate"</span> =&gt; <span class="hljs-number">0.58</span>
    ],
];

<span class="hljs-variable">$jsonPayload</span> = json_encode(<span class="hljs-variable">$episodes</span>, JSON_PRETTY_PRINT);
</code></pre>
<p>That <code>json_encode()</code> call produces output like this:</p>
<pre><code class="language-json hljs">[
    {
        <span class="hljs-attr">"id"</span>: <span class="hljs-number">1</span>,
        <span class="hljs-attr">"title"</span>: <span class="hljs-string">"Getting Started with Laravel"</span>,
        <span class="hljs-attr">"published_at"</span>: <span class="hljs-string">"2026-01-15"</span>,
        <span class="hljs-attr">"downloads"</span>: <span class="hljs-number">4821</span>,
        <span class="hljs-attr">"avg_listen_time"</span>: <span class="hljs-string">"34:12"</span>,
        <span class="hljs-attr">"completion_rate"</span>: <span class="hljs-number">0.71</span>
    },
    {
        <span class="hljs-attr">"id"</span>: <span class="hljs-number">2</span>,
        <span class="hljs-attr">"title"</span>: <span class="hljs-string">"PHP 8.4 New Features"</span>,
        <span class="hljs-attr">"published_at"</span>: <span class="hljs-string">"2026-02-03"</span>,
        <span class="hljs-attr">"downloads"</span>: <span class="hljs-number">6204</span>,
        <span class="hljs-attr">"avg_listen_time"</span>: <span class="hljs-string">"41:55"</span>,
        <span class="hljs-attr">"completion_rate"</span>: <span class="hljs-number">0.83</span>
    },
    {
        <span class="hljs-attr">"id"</span>: <span class="hljs-number">3</span>,
        <span class="hljs-attr">"title"</span>: <span class="hljs-string">"Scaling MySQL for High Traffic"</span>,
        <span class="hljs-attr">"published_at"</span>: <span class="hljs-string">"2026-02-24"</span>,
        <span class="hljs-attr">"downloads"</span>: <span class="hljs-number">3109</span>,
        <span class="hljs-attr">"avg_listen_time"</span>: <span class="hljs-string">"28:40"</span>,
        <span class="hljs-attr">"completion_rate"</span>: <span class="hljs-number">0.58</span>
    }
]
</code></pre>
<p>You might notice there&#8217;s a log of duplicate information in the keys (<code>"id"</code>, <code>"title"</code>, <code>"published_at"</code>, <code>"downloads"</code>, <code>"avg_listen_time"</code>, <code>"completion_rate"</code>). Each one shows up three times, once per record.</p>
<p>You might be saying that three records is nothing but as you scale up and you send over 500 episodes, you&#8217;re repeating those six field names 500 times each. That&#8217;s 3,000 strings the LLM has to tokenize, and you&#8217;re paying for every single one.</p>
<p>Regardless of how cheap the tokens are individually, your total bill climbs faster than you&#8217;d think when you&#8217;re running hundreds of API calls a day.</p>
<h2>What is TOON</h2>
<p>TOON stands for Token-Oriented Object Notation. It solves the repetition problem from earlier by trading structure for whitespace. We won&#8217;t see things we&#8217;re accustomed to in PHP like curly braces, square brackets, or quoted key names. We&#8217;re just going to use indentation to show hierarchy, like YAML. That alone cuts a surprising number of punctuation tokens while not increasing error rates all that much.</p>
<p>An even bigger win is the tabular format that TOON uses. When all your records share the same fields, you write the field names once as a header row, and each record becomes a single comma-separated line. The keys go from appearing once per record to appearing once, period.</p>
<p>Our episode data in TOON looks like this:</p>
<pre><code class="hljs yaml"><span class="hljs-string">episodes[3]{id,</span> <span class="hljs-string">title,</span> <span class="hljs-string">published_at,</span> <span class="hljs-string">downloads,</span> <span class="hljs-string">avg_listen_time,</span> <span class="hljs-string">completion_rate}</span>
    <span class="hljs-number">1</span><span class="hljs-string">,</span> <span class="hljs-string">Getting</span> <span class="hljs-string">Started</span> <span class="hljs-string">with</span> <span class="hljs-string">Laravel,</span> <span class="hljs-number">2026-01-15</span><span class="hljs-string">,</span> <span class="hljs-number">4821</span><span class="hljs-string">,</span> <span class="hljs-number">34</span><span class="hljs-string">:12,</span> <span class="hljs-number">0.71</span>
    <span class="hljs-number">2</span><span class="hljs-string">,</span> <span class="hljs-string">PHP</span> <span class="hljs-number">8.4</span> <span class="hljs-string">New</span> <span class="hljs-string">Features,</span> <span class="hljs-number">2026-02-03</span><span class="hljs-string">,</span> <span class="hljs-number">6204</span><span class="hljs-string">,</span> <span class="hljs-number">41</span><span class="hljs-string">:55,</span> <span class="hljs-number">0.83</span>
    <span class="hljs-number">3</span><span class="hljs-string">,</span> <span class="hljs-string">Scaling</span> <span class="hljs-string">MySQL</span> <span class="hljs-string">for</span> <span class="hljs-string">High</span> <span class="hljs-string">Traffic,</span> <span class="hljs-number">2026-02-24</span><span class="hljs-string">,</span> <span class="hljs-number">3109</span><span class="hljs-string">,</span> <span class="hljs-number">28</span><span class="hljs-string">:40,</span> <span class="hljs-number">0.58</span>
</code></pre>
<p>That&#8217;s the whole dataset. Field names once at the top, one row per record below that. On this sample data, TOON achieves a 60.42% token reduction: 379 tokens down to 150. Hard to get excited about with three rows but again at 500 episodes per batch, that&#8217;s where it becomes real money at production scale.</p>
<p>We&#8217;ll have more after this word from our partners.</p>
<h2>Working with TOON in your prompts</h2>
<p>As always, with supporting file formats in our code, we have two options. We can build our own code, do it quickly and dirty, or we can find a library on Packagist that does the work for us. Thankfully, someone already has, and it supports more options than just our basic array of object examples above. It&#8217;s <a href="https://github.com/HelgeSverre/toon-php">toon-php</a> and it allows us to simply call &#8220;Toon::encode()&#8221;</p>
<pre><code class="language-php hljs"><span class="hljs-keyword">echo</span> Toon::encode([
    <span class="hljs-string">'users'</span> =&gt; [
        [<span class="hljs-string">'id'</span> =&gt; <span class="hljs-number">1</span>, <span class="hljs-string">'name'</span> =&gt; <span class="hljs-string">'Alice'</span>, <span class="hljs-string">'role'</span> =&gt; <span class="hljs-string">'admin'</span>],
        [<span class="hljs-string">'id'</span> =&gt; <span class="hljs-number">2</span>, <span class="hljs-string">'name'</span> =&gt; <span class="hljs-string">'Bob'</span>, <span class="hljs-string">'role'</span> =&gt; <span class="hljs-string">'user'</span>],
    ]
]);
</code></pre>
<p>To get our data in TOON format.</p>
<pre><code class="hljs css">users<span class="hljs-selector-attr">[2]</span>{id,name,role}:
  <span class="hljs-number">1</span>,Alice,admin
  <span class="hljs-number">2</span>,Bob,user
</code></pre>
<p>It can also reverse TOON back into a PHP array:</p>
<pre><code class="language-php hljs"><span class="hljs-comment">// Decode objects (returned as associative arrays)</span>
<span class="hljs-variable">$toon</span> = <span class="hljs-string">&lt;&lt;&lt;TOON
id: 123
name: Ada
active: true
TOON</span>;

<span class="hljs-variable">$result</span> = Toon::decode(<span class="hljs-variable">$toon</span>);
<span class="hljs-comment">// ['id' =&gt; 123, 'name' =&gt; 'Ada', 'active' =&gt; true]</span>
</code></pre>
<p>It&#8217;s fairly slick.</p>
<h2>Sending Toon to the LLM</h2>
<p>Now that we have our data in TOON format, you also need to tell the model how to read this format.</p>
<p>This can be done by adding it to your system prompt:</p>
<pre><code class="language-php hljs"><span class="hljs-meta">&lt;?php</span>

<span class="hljs-variable">$systemPrompt</span> = <span class="hljs-string">"You will receive data in TOON (Token-Oriented Object Notation) tabular format. "</span>
    . <span class="hljs-string">"The first indented line contains comma-separated field names. "</span>
    . <span class="hljs-string">"Each subsequent indented line contains comma-separated values in the same field order. "</span>
    . <span class="hljs-string">"Parse each line as a record using the header fields as keys."</span>;

<span class="hljs-variable">$userPrompt</span> = <span class="hljs-string">"Analyze the following podcast episode statistics and identify which episodes have low completion rates:\n\n"</span>
    . convertToToon(<span class="hljs-variable">$episodes</span>, <span class="hljs-string">"episodes"</span>);
</code></pre>
<p>Leave that out, and the model treats your data as unstructured text. It&#8217;ll miss the structure entirely and give you garbage back.</p>
<p>It&#8217;s still wild that this works as well as it does.</p>
<h2>Gotchas</h2>
<p>Now there are some gotchas you have to keep in mind.</p>
<p>The first is that with everything with LLMs, we have to include that everything is brand new in this field, so this is most likely going to be out of date before we hit the publish button. It&#8217;s still beneficial just to understand the concept because there are so many places where we messy humans need structure that LLMs don&#8217;t.</p>
<p>Because LLMs are non-deterministic, your mileage is going to vary, but in benchmarks, TOON is just as accurate as JSON for returned results, so make sure you&#8217;re always looking for bad data coming back from the LLM and including a &#8220;this data is generated using AI&#8221; warning on the output.</p>
<p>The most annoying gotcha is that you have to explain the format every time. JSON is something every LLM has been trained on because it exists in all of the LLMs&#8217; training data, but TOON isn&#8217;t (yet). If you don&#8217;t include those parsing instructions in the system prompt, the model will read your rows as plain text, and the response will be wackadoo.</p>
<p>TOON also falls apart with messy data. It works best with flat, consistent records where every item has the same fields. Nested objects, optional fields that vary between records, arrays inside arrays, all of that breaks the tabular structure. If you&#8217;re sending that data, stick with JSON. You might also  can also do a hybrid where TOON handles the flat parts, and JSON handles anything irregular.</p>
<p>Finally, the math only works at scale. If you&#8217;re just sending two or three records, then the token overhead of explaining the format in the system prompt costs more than you save. Hundreds or thousands of records is where TOON earns its keep.</p>
<h2>What You Need To Know</h2>
<ul>
<li>TOON writes field names once as a header row, then one comma-separated line per record after that.</li>
<li>Benchmarks on uniform data like episode stats show roughly a 60% token reduction.</li>
<li>You MUST include format instructions in your system prompt. LLMs aren&#8217;t trained on TOON and won&#8217;t figure it out on their own.</li>
<li>Flat, consistent data is where TOON shines. Nested or irregular structures are still better handled by JSON.</li>
</ul>
<p>The post <a href="/2026/05/token-oriented-object-notation-toon-for-php-developers/">Token-Oriented Object Notation (TOON) For PHP Developers</a> appeared first on <a href="https://www.phparch.com">PHP Architect</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>/2026/05/token-oriented-object-notation-toon-for-php-developers/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>The PHP Podcast 2026.04.30</title>
		<link>https://www.phparch.com/podcast/the-php-podcast-2026-04-30/</link>
		
		<dc:creator><![CDATA[Eric Van Johnson]]></dc:creator>
		<pubDate>Fri, 01 May 2026 01:54:46 +0000</pubDate>
				<category><![CDATA[PHP Architect]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[The PHP Podcast]]></category>
		<guid isPermaLink="false">https://www.phparch.com/?post_type=podcast&#038;p=19364</guid>

					<description><![CDATA[<p><img src="/wp-content/uploads/2026/04/The-PHP-Podcast-2026.04.30.png" alt="" /></p>
<p>🎙️ PHP Podcast &#8211; April 30, 2026 Hosts: Eric Van Johnson &#38; John Congdon Another fun episode of the PHP Podcast! Here&#8217;s what we covered: 🚁 The Drone Slayer Strikes Eric and John wrapped up a Padres game at beautiful Petco Park in downtown San Diego — and things got weird on the way out. [&#8230;]</p>
<p>The post <a href="https://www.phparch.com/podcast/the-php-podcast-2026-04-30/">The PHP Podcast 2026.04.30</a> appeared first on <a href="https://www.phparch.com">PHP Architect</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img src="/wp-content/uploads/2026/04/The-PHP-Podcast-2026.04.30.png" alt="" /></p><p><!-- PHP Podcast Show Notes Template --></p>
<p style="text-align: center;"><iframe loading="lazy" class="custom-youtube-iframe" title="The PHP Podcast 2026.04.30" src="https://www.youtube.com/embed/8WaUFb8wpoI" width="1020" height="630" frameborder="0" allowfullscreen="allowfullscreen"><br />
<span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start"> </span><br />
</iframe></p>
<h1><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f399.png" alt="🎙" class="wp-smiley" style="height: 1em; max-height: 1em;" /> PHP Podcast &#8211; April 30, 2026</h1>
<p><strong>Hosts:</strong> Eric Van Johnson &amp; John Congdon</p>
<h4><strong>Another fun episode of the PHP Podcast! Here&#8217;s what we covered:</strong></h4>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f681.png" alt="🚁" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>The Drone Slayer Strikes</strong><br />
Eric and John wrapped up a Padres game at beautiful Petco Park in downtown San Diego — and things got weird on the way out. A rogue drone started buzzing around a busy intersection, lingering on a guy on a scooter, before making a fateful attempt to fly in front of Eric&#8217;s car. It did not make it. The controller came running out, Eric kept driving, and John has already dubbed him &#8220;the drone slayer.&#8221; Eric still hasn&#8217;t looked at whether his wife&#8217;s car got scratched, which feels like the bravest choice of all.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/26be.png" alt="⚾" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Baseball Week Never Ends</strong><br />
The reason today&#8217;s episode started an hour early? Baseball. John&#8217;s week was wall-to-wall: a Tuesday night little league game, the Padres game with Eric on Wednesday, practice Thursday night, the playoff draft reveal Friday, a little league game Saturday, and another Padres game Sunday. Eric pointed out John was wearing his own last name on a jersey to a Padres game, which opened up a whole sidebar on why anyone buys a $200 jersey with a player&#8217;s name on it when players change teams every two years anyway.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f3e5.png" alt="🏥" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Walking Pneumonia and the Power of the Right Antibiotic</strong><br />
John&#8217;s week was also scrambled because his son had been diagnosed with regular pneumonia — but after not getting better, a second doctor visit revealed it was actually atypical (walking) pneumonia, which requires a completely different antibiotic. Once on the correct medication, his son bounced back almost immediately. The kid had been pushing himself trying to feel well enough for sixth grade camp, but there&#8217;s really no faking it with the wrong treatment.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f916.png" alt="🤖" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>The Archie Situation — AI Standups Gone Sideways</strong><br />
Eric has had a rough stretch after Anthropic shut down OpenClaw, the platform that powered their internal Discord bot Archie (a.k.a. Alfred). Archie had been running daily team standups, generating weekly summaries, letting team members tag it with updates throughout the day, and even setting reminders. Everyone got spoiled by it. Since then, attempts to migrate to Ollama — both locally and through the web service — have been plagued by slow response times and dropped messages. Eric is close to pulling the plug and going back to the old manual method, and he&#8217;s not happy about it.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f527.png" alt="🔧" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Claude SSH&#8217;d Into Eric&#8217;s Server and Fixed Everything</strong><br />
For weeks, Eric had been fighting a broken Postiz Docker container — a self-hosted social media scheduling tool he uses to post across platforms. After updates broke it and multiple attempts at a fresh install still left it broken, he dropped the problem in Claude&#8217;s lap and explained the whole situation. Claude asked for permission to SSH into the remote server on Eric&#8217;s Tailscale network, and Eric said sure. Thirty minutes later, Claude had identified the culprit — a Temporal workflow engine losing its configuration on restart — wrote a fix script, configured the service to reconfigure properly on boot, and even set up a cron job to restart the container on reboot. Eric&#8217;s still trying to find that chat to review exactly what it did, but the service is running.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f310.png" alt="🌐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>GitHub is Getting Hammered by AI Agents</strong><br />
GitHub has had a rough patch of outages, and the numbers tell the story: 20 million new repos per month, 1.4 billion commits, 90 million pull requests — with a dramatic spike right at the start of 2026. Part of the culprit? AI agents being unleashed on codebases to automatically open pull requests from backlog tickets. Eric has a client doing exactly this, and while it sounds impressive from the owner&#8217;s perspective (&#8220;look at all this work getting done!&#8221;), the developers on the ground report that a high percentage of those AI-generated PRs require significant human correction before they&#8217;re anywhere close to mergeable. The comparison to Reddit&#8217;s early explosion — and the one engineer who basically didn&#8217;t sleep for two years — felt pretty apt.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f510.png" alt="🔐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>The GitHub Security Vulnerability Nobody Talked About</strong><br />
As if the outages weren&#8217;t enough, GitHub quietly disclosed a serious security vulnerability: a specially crafted git push — using malformed options in the push metadata — could allow arbitrary code execution on GitHub&#8217;s own servers. Eric had to dig to find the blog post because GitHub was not exactly shouting about it. To their credit, they state that their investigation found no evidence the vulnerability was ever exploited in the wild. But knowing that a specific sequence of bytes in a git push could have handed someone the keys to GitHub&#8217;s servers is genuinely unsettling.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f47b.png" alt="👻" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>The Creator of Ghosty Is Leaving GitHub</strong><br />
Mitchell Hashimoto — creator of the Ghostty terminal and formerly of HashiCorp — announced he&#8217;s leaving GitHub, where he&#8217;s been a user since 2008 (user #1299). This comes shortly after the Zig programming language made the same move, also citing reliability concerns. Eric was mildly skeptical of the &#8220;announcing I&#8217;m leaving&#8221; genre of posts, pointing out that GitHub doesn&#8217;t especially need your permission to stop using it. Notably, Hashimoto&#8217;s post doesn&#8217;t say what he plans to use instead. John joined GitHub in 2009, which led to a fun live expedition through his commit history — turns out he got serious about coding right around July 2013, roughly when DiegoDev landed its first client.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f6e1.png" alt="🛡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Update Composer. Like, Right Now.</strong><br />
PHP developers tend to set Composer up and forget about it — but there&#8217;s been a serious security vulnerability patched in a recent release that you absolutely want. The fix is simple: just run <strong>composer self-update</strong>. It updates in place and keeps a rollback copy in case anything breaks. While you&#8217;re at it, if you have global Composer packages installed, run <strong>composer global update</strong> to catch those too. Eric noted that Composer should really warn you when you&#8217;re significantly behind versions, the way Claude Code does. Until it does, just make a habit of it.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f427.png" alt="🐧" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Linux Kernel Exploit — Patch Your Servers</strong><br />
A CVE was shared in the phparch Discord that affects Ubuntu, Amazon Linux, and Red Hat: a Linux kernel exploit that lets an attacker gain root access with a remarkably small payload — around 732 bytes targeting setuid. It&#8217;s a good reminder that the old sysadmin badge of honor (&#8220;my server has 5-year uptime, never rebooted&#8221;) is the wrong mentality now. With tools like Terraform and infrastructure-as-code, spinning up a freshly patched machine is the move. Keep your operating systems current, especially Linux servers running in production.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f4f1.png" alt="📱" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Holly Built a PHP Tek App — And It&#8217;s Already Good</strong><br />
Community member Holly built a native attendee app for PHP Tek, available now in beta on iOS (via TestFlight) and Android. You can browse the schedule, select the talks you want to attend, and it&#8217;ll warn you if two of your picks are in conflict — a &#8220;merge conflict,&#8221; as Eric put it. Best of all, it sends push notifications when sessions you&#8217;ve favorited get moved or rescheduled, which happens constantly at tech conferences. Eric&#8217;s wife installed it without being told anything about it and figured it out on her own — about as good a usability test as you can get. The app is built natively in Swift and Kotlin. Be kind to Holly — this is a gift to the community.</p>
<p><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f418.png" alt="🐘" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>PHP Tek in 19 Days + New PHP Architect Merch</strong><br />
PHP Tek is nearly here — 19 days out in Chicago. A brand new PHP Architect elephant is coming (tentatively named Holly, after a live-stream vote). Eric also walked through new merch at store.phparch.com: a v-neck version of the classic rainbow PHP Architect shirt, and his personal labor of love — the &#8220;I have standards, specifically PSR 0, 1&#8221; tee — which he admits has sold exactly zero copies. If the hotel room block is sold out by the time you read this, reach out to the team directly and they&#8217;ll see what they can do.</p>
<h3>Links from the show:</h3>
<ul>
<li style="list-style-type: none;">
<ul>
<li><a href="https://postiz.com">Postiz — Open Source Social Media Scheduling</a></li>
<li><a href="https://github.blog/security/vulnerability-research/github-security-vulnerability-git-push/">GitHub Security Advisory: Remote Code Execution via Git Push Options</a></li>
<li><a href="https://phptek.phparch.com">PHP Tek 2026 — Chicago</a></li>
<li><a href="https://store.phparch.com">PHP Architect Store</a></li>
<li><a href="https://discord.phparch.com">PHP Architect Discord</a></li>
<li><a href="https://github.blog/news-insights/company-news/an-update-on-github-availability/">An update on GitHub availability</a></li>
<li><a href="https://ziglang.org/news/migrating-from-github-to-codeberg/">Migrating from GitHub to Codeberg</a></li>
<li><a href="https://mitchellh.com/writing/ghostty-leaving-github">Ghostty Is Leaving GitHub</a></li>
<li><a href="https://github.blog/security/securing-the-git-push-pipeline-responding-to-a-critical-remote-code-execution-vulnerability/">Securing the git push pipeline: Responding to a critical remote code execution vulnerability</a></li>
<li><a href="https://blog.packagist.com/composer-2-9-6-perforce-driver-command-injection-vulnerabilities/">Composer 2.9.6 fixes Perforce Driver Command Injection Vulnerabilities (CVE-2026-40261, CVE-2026-40176)</a></li>
<li><a href="https://xint.io/blog/copy-fail-linux-distributions">Copy Fail: 732 Bytes to Root on Every Major Linux Distribution.</a></li>
</ul>
</li>
</ul>
<h2>Host:</h2>
<h3>Eric Van Johnson</h3>
<ul>
<li>X: <a href="https://x.com/shocm">@shocm</a></li>
<li>Mastodon: <a href="https://phparch.social/@eric">@eric@phparch.social</a></li>
<li>Bluesky: <a href="https://bsky.app/profile/ericvanjohnson.bsky.social">@ericvanjohnson.bsky.social</a></li>
<li><a href="http://PHPArch.me">PHPArch.me</a>: <a href="https://phparch.me/@eric">@eric</a></li>
</ul>
<h3>John Congdon</h3>
<ul>
<li>X: <a href="https://x.com/johncongdon">@johncongdon</a></li>
<li>Mastodon: <a href="https://phparch.social/@john">@john@phparch.social</a></li>
<li>Bluesky: <a href="https://bsky.app/profile/johncongdon.bsky.social">@johncongdon.bsky.social</a></li>
<li><a href="http://PHPArch.me">PHPArch.me</a>: <a href="https://phparch.me/@john">@john</a></li>
</ul>
<h2>Streams:</h2>
<ul>
<li style="list-style-type: none;">
<ul>
<li><a href="https://www.youtube.com/phparch">Youtube Channel</a></li>
<li><a href="https://www.twitch.tv/phparch">Twitch</a></li>
</ul>
</li>
</ul>
<h2><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f4ec.png" alt="📬" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Connect &amp; Hire</h2>
<div class="social-links"><a href="https://phparch.com" target="_blank" rel="noopener">PHP Architect Website</a><br />
<a href="https://x.com/phparch" target="_blank" rel="noopener">Twitter/X</a><br />
<a href="https://phparch.social/@phparch" target="_blank" rel="noopener">Mastodon</a><br />
<a href="mailto:support@phparch.com">Hire PHP Developers</a></div>
<p><strong>Looking to hire PHP developers?</strong> Email <a href="mailto:support@phparch.com">support@phparch.com</a> &#8211; Joe and the team are available for consulting, infrastructure work, Ansible playbooks, and code review.</p>
<h1>Partner</h1>
<p>This podcast is made a little better thanks to our partners</p>
<p><strong><a href="https://displace.tech/">Displace</a></strong><br />
<img loading="lazy" decoding="async" class="wp-image-18480 alignleft" src="https://www.phparch.com/wp-content/uploads/2025/09/archived-version-phparch-logos-512-x-512-px-300x300.png" alt="" width="173" height="173" srcset="https://www.phparch.com/wp-content/uploads/2025/09/archived-version-phparch-logos-512-x-512-px-300x300.png 300w, https://www.phparch.com/wp-content/uploads/2025/09/archived-version-phparch-logos-512-x-512-px-150x150.png 150w, https://www.phparch.com/wp-content/uploads/2025/09/archived-version-phparch-logos-512-x-512-px-160x160.png 160w, https://www.phparch.com/wp-content/uploads/2025/09/archived-version-phparch-logos-512-x-512-px-50x50.png 50w, https://www.phparch.com/wp-content/uploads/2025/09/archived-version-phparch-logos-512-x-512-px-120x120.png 120w, https://www.phparch.com/wp-content/uploads/2025/09/archived-version-phparch-logos-512-x-512-px.png 512w" sizes="auto, (max-width: 173px) 100vw, 173px" /></p>
<p>&nbsp;</p>
<p>Infrastructure Management, Simplified<br />
Automate Kubernetes deployments across any cloud provider or bare metal with a single command. Deploy, manage, and scale your infrastructure with ease.<br />
<a href="https://displace.tech/">https://displace.tech/</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong><a href="https://phpscore.com/">PHPScore</a></strong><br />
<img loading="lazy" decoding="async" class="size-full wp-image-18481 alignleft" src="https://www.phparch.com/wp-content/uploads/2025/09/Screenshot-2025-09-18-at-5.17.47 PM.png" alt="" width="212" height="49" srcset="https://www.phparch.com/wp-content/uploads/2025/09/Screenshot-2025-09-18-at-5.17.47 PM.png 212w, https://www.phparch.com/wp-content/uploads/2025/09/Screenshot-2025-09-18-at-5.17.47 PM-160x37.png 160w" sizes="auto, (max-width: 212px) 100vw, 212px" /></p>
<p>Put Your Technical Debt on Autopay with <a href="https://phpscore.com/">PHPScore</a></p>
<p>&nbsp;</p>
<p><strong><a href="https://www.coderabbit.ai/brand">CodeRabbit</a></strong><br />
<img loading="lazy" decoding="async" class="wp-image-18968 alignleft" src="https://www.phparch.com/wp-content/uploads/2026/01/show-300x157.png" alt="CodeRabbit - cut code review time &amp; bugs in half Instantly." width="204" height="107" srcset="https://www.phparch.com/wp-content/uploads/2026/01/show-300x157.png 300w, https://www.phparch.com/wp-content/uploads/2026/01/show-160x84.png 160w, https://www.phparch.com/wp-content/uploads/2026/01/show.png 553w" sizes="auto, (max-width: 204px) 100vw, 204px" /></p>
<p>&nbsp;</p>
<p>Cut code review time &amp; bugs in half instantly with <a href="https://www.coderabbit.ai/">CodeRabbit</a>.</p>
<h4></h4>
<p>&nbsp;</p>
<h4>Music Provided by <a href="https://www.epidemicsound.com/">Epidemic Sound </a></h4>
<p><a href="https://www.epidemicsound.com/">https://www.epidemicsound.com/</a></p>
<h2><img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f3af.png" alt="🎯" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Join Us Live Next Week</h2>
<p><b><a href="https://www.youtube.com/phparch">Youtube Channel</a></b></p>
<hr />
<p><em>Got feedback? Join us on Discord at <a href="https://discord.phparch.com">discord.phparch.com</a></em></p>
<p>The post <a href="https://www.phparch.com/podcast/the-php-podcast-2026-04-30/">The PHP Podcast 2026.04.30</a> appeared first on <a href="https://www.phparch.com">PHP Architect</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>PHP Alive And Kicking: Episode 29 Elizabeth Barron</title>
		<link>https://www.phparch.com/podcast/php-alive-and-kicking-episode-29-elizabeth-barron/</link>
		
		<dc:creator><![CDATA[Mike Page]]></dc:creator>
		<pubDate>Thu, 30 Apr 2026 18:29:31 +0000</pubDate>
				<category><![CDATA[PHP Alive and Kicking]]></category>
		<category><![CDATA[podcast]]></category>
		<guid isPermaLink="false">https://www.phparch.com/?post_type=podcast&#038;p=19360</guid>

					<description><![CDATA[<p><img src="/wp-content/uploads/2026/04/PHP-Alive-and-Kicking-ShowEpisode-29.png" alt="" /></p>
<p>﻿ Elizabeth Barron returns to the show just four weeks after her debut appearance for a wide-ranging follow-up on her first months as Executive Director of the PHP Foundation. Elizabeth shares the key findings from her community listening tour, covers the upcoming PHP community survey in partnership with JetBrains, talks about the Foundation&#8217;s plans for [&#8230;]</p>
<p>The post <a href="https://www.phparch.com/podcast/php-alive-and-kicking-episode-29-elizabeth-barron/">PHP Alive And Kicking: Episode 29 Elizabeth Barron</a> appeared first on <a href="https://www.phparch.com">PHP Architect</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img src="/wp-content/uploads/2026/04/PHP-Alive-and-Kicking-ShowEpisode-29.png" alt="" /></p><p style="text-align: center;"><iframe loading="lazy" class="custom-youtube-iframe" title=" PHP Alive And Kicking: Episode 29 Elizabeth Barron" src="https://www.youtube.com/embed/vv7ZCFAypic?si=6oARpnEYJ-1Kypo2" width="1020" height="630" frameborder="0" allowfullscreen="allowfullscreen"><span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start">﻿</span></iframe></p>
<p><!-- Episode Summary Card --></p>
<div class="summary-card">Elizabeth Barron returns to the show just four weeks after her debut appearance for a wide-ranging follow-up on her first months as Executive Director of the PHP Foundation. Elizabeth shares the key findings from her community listening tour, covers the upcoming PHP community survey in partnership with JetBrains, talks about the Foundation&#8217;s plans for transparency, documentation, and guest blogging, and discusses the challenges of the PHP newcomer experience. The episode also features a candid conversation about public speaking anxiety, conference culture, and the enduring warmth of the PHP community.</div>
<p><!-- TOPICS --></p>
<div class="section">
<h2>Topics Covered</h2>
<div class="topic">
<div class="topic-title">PHP Foundation Community Findings <span class="tag">Main Topic</span></div>
<p>Elizabeth published a blog post summarising the findings from her listening tour across the PHP community. Four key themes emerged:</p>
<ul>
<li><strong>Foundation transparency</strong> — Many people don&#8217;t know what the Foundation is doing; the website is too generic and needs to better reflect the team&#8217;s actual work.</li>
<li><strong>Marketing of PHP</strong> — How PHP is perceived externally, and how the community can better promote the language.</li>
<li><strong>Community support</strong> — What the Foundation can do to better support developers, user groups, and sub-communities.</li>
<li><strong>The language itself</strong> — Feedback and ideas relating to PHP&#8217;s ongoing development.</li>
</ul>
<p>Elizabeth noted that the volume of feedback was a good sign — silence would be a much bigger problem. A Part Two of the blog post is in the works and will cover strategy and next steps.</p>
</div>
<div class="topic">
<div class="topic-title">Newcomer Experience &amp; Documentation Gap</div>
<p>A recurring theme from the community feedback was how hard it is for brand-new developers to get started with PHP:</p>
<ul>
<li>There is no single central &#8220;landing page&#8221; for newcomers — help is scattered across Discord, Reddit, local user groups, and elsewhere.</li>
<li>The PHP manual assumes a baseline of programming knowledge that true beginners don&#8217;t yet have.</li>
<li>Many existing beginner resources have not been updated as the language has evolved.</li>
<li>PHP lacks the kind of gamified, beginner-friendly learning apps that Python and JavaScript enjoy.</li>
<li>Mike noted that most coding bootcamps are JavaScript-first, leaving a gap for PHP-based introductory learning.</li>
<li>Elizabeth is exploring whether the Foundation can help coordinate and amplify existing resources rather than compete with them — and fill in the gaps that remain.</li>
<li>Matt Stafer&#8217;s recent involvement with the Foundation was highlighted as a potential access point for reaching newcomers, given his large following.</li>
</ul>
</div>
<div class="topic">
<div class="topic-title">PHP Community Survey (with JetBrains)</div>
<ul>
<li>The PHP Foundation is running a community survey in partnership with JetBrains (makers of PHPStorm).</li>
<li>The goal is to generate open, usable data that anyone — including the Foundation, JetBrains, and the broader community — can analyse.</li>
<li>Community members were invited to suggest their own questions (the submission window closed on the day of recording).</li>
<li>The full survey was expected to launch in <strong>early June</strong>.</li>
</ul>
</div>
<div class="topic">
<div class="topic-title">Foundation Transparency &amp; Hiring Update</div>
<ul>
<li>The Foundation&#8217;s developer hiring process (which had been open in a previous cycle) was paused while Elizabeth settled into the role and internal processes were stabilised.</li>
<li>Many of the Foundation&#8217;s developers currently work in silos; improving collaboration and communication across the team is a near-term priority.</li>
<li>The Foundation&#8217;s blog will be opened up to <strong>guest bloggers</strong> — Elizabeth teased an upcoming post she&#8217;s excited about but couldn&#8217;t yet name.</li>
<li>Developer applications are expected to reopen in <strong>autumn 2025</strong>.</li>
</ul>
</div>
<div class="topic">
<div class="topic-title">Public Speaking Anxiety &amp; Conference Culture</div>
<p>An unexpectedly personal and engaging segment where all three speakers opened up about their experiences with social anxiety and public speaking:</p>
<ul>
<li>Mike shared that despite running the show and talking to guests regularly, he struggled to approach familiar faces at PHP conferences in person.</li>
<li>The group discussed strategies: preparing thoroughly (Elizabeth and Shane), improvising with bullet points (Chris), and the benefit of pairing up to speak (Mike and Chris&#8217;s planed joint talk).</li>
<li>Elizabeth reminded Mike that audiences are always rooting for the speaker — and encouraged him to keep pushing through the discomfort.</li>
<li>Chris mentioned <a href="https://www.mergephp.com">Merge PHP</a> (online conference, 14th May) as a useful middle step between podcasting and live in-person talks.</li>
</ul>
</div>
<div class="topic">
<div class="topic-title">PHP Appalachia — A Community Origin Story</div>
<p>Elizabeth shared the story of <strong>PHP Appalachia</strong>, one of the earliest informal PHP community gatherings, held in the Gatlinburg, Tennessee area starting around 2006. Around 12 people from the PHP IRC channel (phpC) rented a cabin with Wi-Fi, gave talks, and sat around a campfire — and Elizabeth is still friends with every single person who attended.</p>
</div>
</div>
<p><!-- LINKS --></p>
<div class="section">
<h2>Links &amp; Resources</h2>
<ul>
<li><a href="https://thephp.foundation">PHP Foundation</a></li>
<li><a href="https://phpa.me/2026 04-elizabeth">The Executive Director&#8217;s Manifesto</a> — Chris&#8217;s article on PHP Architect, based on Elizabeth&#8217;s previous episode (free to read)</li>
<li><a href="https://www.mergephp.com">Merge PHP</a> — Online PHP conference, 14th May (Andy Snell: &#8220;More than just a cache, data-structured databases&#8221;)</li>
<li><a href="https://phptek.io/">PHP Tech Conference</a> — Coming up in a few weeks, running alongside <strong>JS Tech</strong> for the first time</li>
<li><a href="https://www.phparch.com/subscribe/">PHP Architect Magazine</a> — Use code <strong>ALIVE3</strong> for the first 3 months of a digital annual subscription free</li>
<li><a href="https://store.phparch.com">PHP Architect Store</a> — T-shirts, caps, mugs and more</li>
<li><a href="https://discord.phparch.com">PHP Architect Discord</a> — Join the community, ask questions, and chat with PHP core contributors</li>
</ul>
</div>
<p><!-- PHP ARCHITECT SOCIAL MEDIA --></p>
<div class="section">
<h2>PHP Architect Social Media</h2>
<ul>
<li>X: <a href="https://x.com/phparch">https://x.com/phparch</a></li>
<li>Mastodon: <a href="https://phparch.social/@phparch">https://phparch.social/@phparch</a></li>
<li>Bluesky: <a href="https://bsky.app/profile/phparch.com">https://bsky.app/profile/phparch.com</a></li>
<li>PHPArch.me: <a href="https://phparch.me/@phparch">https://phparch.me/@phparch</a></li>
<li>Discord: <a href="https://discord.phparch.com">https://discord.phparch.com</a></li>
</ul>
</div>
<p><!-- PARTNER --></p>
<h1>Partner</h1>
<p>This podcast is made a little better thanks to our partner.</p>
<p><strong><a href="https://displace.tech/">Displace</a></strong></p>
<p>Infrastructure Management, Simplified. Automate Kubernetes deployments across any cloud provider or bare metal with a single command. Deploy, manage, and scale your infrastructure with ease — without the steep learning curve of Docker, Kubernetes, and Terraform. Perfect for solo developers and small teams who want enterprise-grade infrastructure without the enterprise-grade complexity.</p>
<p><a href="https://displace.tech/">https://displace.tech/</a></p>
<h4>Music Provided by <a href="https://www.epidemicsound.com/">Epidemic Sound</a></h4>
<p>The post <a href="https://www.phparch.com/podcast/php-alive-and-kicking-episode-29-elizabeth-barron/">PHP Alive And Kicking: Episode 29 Elizabeth Barron</a> appeared first on <a href="https://www.phparch.com">PHP Architect</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
