This Week in PHP Internals — July 8 to July 15, 2026. A brand-new class extension proposal rewrote itself mid-thread, the Deprecations RFC froze with ballots set for July 27, function autoloading split off a prerequisite RFC overnight, Duration picked up its first declared no on the eve of its vote, and a JSX-flavored markup RFC landed hours before recording. An Artisan Build production.
0:00 Intro
0:10 Ad - Tideways
0:26 Class Extensions
2:41 Deprecations 8.6
3:45 Autoloading
4:43 Duration
5:55 Pipe Assignment
6:59 Native Markup
8:11 ZTS Default
9:30 Serializable Closures
10:31 Vote Calendar
11:23 Quick Hits
13:39 TL;DR
SPONSOR
Tideways — PHP production profiling, tracing, and monitoring: from slow request to root cause in minutes. 5-minute install, no credit card, hosted in Germany. Free trial: https://tideways.com
TOP STORY: CLASS EXTENSIONS
Class Extension discussion (Holly Schilling) — draft RFC gists: general syntax https://gist.github.com/hollyschillin... — scalar methods https://gist.github.com/hollyschillin... — visibility/importing https://gist.github.com/hollyschillin...
Prior art: C# 14 extension members; extension-functions writeup (Larry Garfield & Sara Golemon): https://gist.github.com/Crell/84cab7c...
DEPRECATIONS & PHP 8.6 SCHEDULE
Deprecations for PHP 8.6 (Gina P. Banyard) — frozen July 13; call to vote July 20, ballots July 27, done by Aug 10: https://wiki.php.net/rfc/deprecations...
PHP 8.6 schedule (RMs) — soft freeze Aug 11, beta1 Aug 13, hard freeze RC1 Sep 22: https://wiki.php.net/todo/php86
RFCS IN MOTION
Function Autoloading, mark 5 (Paul M. Jones): https://wiki.php.net/rfc/function-aut... — PR: https://github.com/php/php-src/pull/2... — new prerequisite RFC split out July 15: https://wiki.php.net/rfc/strict-names...
Time\Duration class (Tim Düsterhus & Derick Rethans) — cooldown ends July 17, vote imminent: https://wiki.php.net/rfc/duration_class
Pipe Assignment Operator (Caleb White, first RFC): https://wiki.php.net/rfc/pipe_assignm... — impl: https://github.com/php/php-src/pull/2...
Native Markup Expressions (Liam Hammett, opened July 14): https://wiki.php.net/rfc/native_marku... — impl: https://github.com/php/php-src/pull/2...
Pre-RFC: deprecating NTS / ZTS by default (Marc Henderkes) — blocker fixes: https://github.com/php/php-src/pull/2... and https://github.com/php/php-src/pull/2...
Serializable closures from constant expressions (Nicolas Grekas): https://wiki.php.net/rfc/serializable...
Query Parameter Manipulation Support (Máté Kocsis): https://wiki.php.net/rfc/query_params
VOTE CALENDAR (nothing open during this window — all queued)
July 16 — Minimum supported versions for PHP 8.6 (Eric Norris) opens: https://wiki.php.net/rfc/min_supporte...
~July 17–20 — Time\Duration (after cooldown): https://wiki.php.net/rfc/duration_class
July 20 → 27 — Deprecations for PHP 8.6: https://wiki.php.net/rfc/deprecations...
July 25–28 — const obj-prop write (Khaled Alam) must open to make 8.6: https://wiki.php.net/rfc/const_object...
QUICK HITS
Readonly Property Defaults (Nick Sdot): https://wiki.php.net/rfc/readonly_pro...
Direction-aware property resolution — the 4x asymmetric-setter fix (Holly Schilling): https://wiki.php.net/rfc/direction_aw... — PR: https://github.com/php/php-src/pull/2...
PREG_THROW_ON_ERROR / PregException (Osama Aldemeery): internals thread, July 7–10
Disallow newlines in CURLOPT_HTTPHEADER (Sjoerd Langkemper): https://github.com/php/php-src/pull/2... — upstream curl: https://github.com/curl/curl/pull/22309
curl socket callbacks / anti-SSRF (Xavier Leune): https://github.com/php/php-src/pull/2...
Bundled GD to libgd 2.4 (Giovanni Giacobbi / Pierre Joye): https://github.com/php/php-src/pull/2... — draft features RFC: https://wiki.php.net/rfc/ext-gd-2.4
DTLS draft PR (Gianfrancesco Aurecchia): https://github.com/php/php-src/pull/2...
Raw feed: https://externals.io — RFC wiki: https://wiki.php.net/rfc
We're Artisan Build. See you next week.