Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added files/20260520 PHPTek PHP 8.6 presentation.pdf
Binary file not shown.
Binary file added files/20260521 PHPTek SemVer presentation.pdf
Binary file not shown.
Binary file modified files/Resume.pdf
Binary file not shown.
3 changes: 3 additions & 0 deletions sitemap.xml
Original file line number Diff line number Diff line change
Expand Up @@ -96,4 +96,7 @@
<url>
<loc>https://scherzer.dev/Blog/20260517-blog-rss</loc>
</url>
<url>
<loc>https://scherzer.dev/Blog/20260525-phptek-2026</loc>
</url>
</urlset>
7 changes: 6 additions & 1 deletion src/Blog/feed-rss.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,14 @@
<channel>
<title>Daniel Scherzer's Blog</title>
<description>Entries from Daniel Scherzer' personal blog</description>
<pubDate>Sun, 17 May 2026 00:00:00 +0000</pubDate>
<pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate>
<generator>https://github.com/DanielEScherzer/website-content</generator>
<link>https://scherzer.dev/Blog</link>
<item>
<title>PHPTek 2026</title>
<pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate>
<link>https://scherzer.dev/Blog/20260525-phptek-2026</link>
</item>
<item>
<title>Blog RSS Feed</title>
<pubDate>Sun, 17 May 2026 00:00:00 +0000</pubDate>
Expand Down
87 changes: 87 additions & 0 deletions src/Blog/posts/20260525-phptek-2026.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
---
title: PHPTek 2026
---

# PHPTek 2026

Last week, I was in Chicago for the PHPTek 2026 conference, where I gave two
talks, one about upcoming changes in PHP 8.6 and the other about semantic
versioning. Between the formal sessions and the informal hallway track
conversations, I left the conference with plenty of new ideas for both PHP
applications and future language improvements.

## Tuesday

The conference started on Tuesday, and after the opening keynote, I chose to
attend "Know Your Enemies: Live Exploit of a PHP Engine Security Breach" for
the first round of sessions. Having dealt with a PHP security release recently,
I found it fascinating to see how security bugs could be exploited. While the
RCE added in [c730aa2][commit-c730aa2] using the `HTTP_USER_AGENTT` header was
obviously malicious (the git server where PHP was developed was compromised),
I hadn't previously understood how [GHSA-3cr5-j632-f35r][GHSA-3cr5-j632-f35r],
where improper sanitization led to server-side request forgery, could be
exploited.

After two more rounds of talks, I opted to attend the
[BattleSnake][link-battlesnake] hackathon and work on creating my own snake. I
decided to code the snake from scratch, rather than using any of the provided
starter code, and by the end of the hackathon I had a very basic snake that
would just move randomly. It isn't any good, but it provides a foundation for
future improvements.

## Wednesday

In the morning on Wednesday, I attended talks about NativePHP and Nginx. I found
NativePHP fascinating, though not too applicable to my own development, since
I don't work on mobile apps. For Nginx, I definitely learned some new tricks.

In the afternoon, in addition to attending sessions by others, I also gave my
first presentation of the conference, "PHP 8.6: The Inside Scoop". A copy of
the slides is available [on my site][slides-86]. Because PHP 8.6 is still in
active development, I had to keep updating that talk up until I gave it. One of
the RFCs that had been in voting, about improvements to the `uri` extension, was
approved [earlier the same day][internals-130976].

I ended that talk by asking if anyone in the audience had any requests for
features to include in PHP 8.6. I can't promise that I would be able to
implement the requested features, or that they would be accepted by the
internals community, but I promised I would take a look. Between the requests
at the end of my talk and other discussions I had with developers throughout
the conference, I have a few ideas for things to work on.

## Thursday

Thursday marked the last day of the conference. Unlike Tuesday and Wednesday,
the Thursday keynote was at the end of the day, meaning that we dove straight
into the various sessions. With so many good options to choose from, I had a
hard time deciding which sessions to attend; thankfully, the sessions were
recorded, and I can watch the ones I missed at a later date.

In the afternoon, I gave my second talk of the conference, about semantic
versioning. That presentation went by a bit faster than expected, and even after
going over the code examples, we still ended a few minutes early. If I present
on semantic versioning at a future conference, I'll be sure to expand on the
edge cases that *should* be considered breaking changes, rather than just
focusing on the cases which should *not* be considered breaking changes. A copy
of those slides is also [available on my site][slides-semver].

## Next steps

Now that PHPTek is over, I have started work on my talk proposals for Longhorn
PHP. In addition to some talks, I also plan to submit a proposal for a workshop
about building PHP extensions.

This blog post also serves as a test for the new RSS feed that
[I added last week][blog-rss] - hopefully, I'll be told that the feed worked
properly.

Overall, PHPTek was a great conference, and I'm looking forward to returning
next year.

[blog-rss]: ./20260517-blog-rss
[commit-c730aa2]: https://github.com/php/php-src/commit/c730aa26bd52829a49f2ad284b181b7e82a68d7d
[internals-130976]: https://news-web.php.net/php.internals/130976
[link-battlesnake]: https://play.battlesnake.com/
[slides-86]: ./../files/20260520%20PHPTek%20PHP%208.6%20presentation.pdf
[slides-semver]: ./../files/20260521%20PHPTek%20SemVer%20presentation.pdf
[GHSA-3cr5-j632-f35r]: https://github.com/php/php-src/security/advisories/GHSA-3cr5-j632-f35r
8 changes: 5 additions & 3 deletions tests/data/Home.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
a release manager for PHP 8.5 (where I am one of two &quot;rookie&quot; release managers)
and for PHP 8.6 (where I am the &quot;veteran&quot; release manager). I also contribute to
PHP as a developer, and as the maintainer of the built-in Reflection extension.</p><p>See the links in the navigation bar above for more information about my
experience.</p><h2 class="subsection-header">Contact</h2><ul><li><a href="https://www.linkedin.com/in/daniel-e-scherzer/" target="_blank" class="external-link">LinkedIn</a></li><li>Email: <code>daniel.e.scherzer@gmail.com</code></li></ul><h2 class="subsection-header">Blog</h2><p>I also have a blog. You can see a full index of my posts <a href="/Blog">here</a>. My latest blog post is: </p><div class="blog-preview"><h3>Blog RSS Feed</h3><span class="blog-preview-date">Sunday, 17 May 2026</span><p>Last month, I received <a rel="noopener noreferrer" target="_blank" class="external-link" href="https://github.com/DanielEScherzer/website-content/issues/79">a request</a> to add an RSS feed to my blog. I am
happy to share that I have added such a feed, available at
<a href="/Blog/feed/rss.xml">/Blog/feed/rss.xml</a>. <a href="/Blog/20260517-blog-rss">Continue reading...</a></p></div></div><div class="des-footer"><div class="des-footer--content">Content is © 2026 Daniel Scherzer</div></div></body></html>
experience.</p><h2 class="subsection-header">Contact</h2><ul><li><a href="https://www.linkedin.com/in/daniel-e-scherzer/" target="_blank" class="external-link">LinkedIn</a></li><li>Email: <code>daniel.e.scherzer@gmail.com</code></li></ul><h2 class="subsection-header">Blog</h2><p>I also have a blog. You can see a full index of my posts <a href="/Blog">here</a>. My latest blog post is: </p><div class="blog-preview"><h3>PHPTek 2026</h3><span class="blog-preview-date">Monday, 25 May 2026</span><p>Last week, I was in Chicago for the PHPTek 2026 conference, where I gave two
talks, one about upcoming changes in PHP 8.6 and the other about semantic
versioning. Between the formal sessions and the informal hallway track
conversations, I left the conference with plenty of new ideas for both PHP
applications and future language improvements. <a href="/Blog/20260525-phptek-2026">Continue reading...</a></p></div></div><div class="des-footer"><div class="des-footer--content">Content is © 2026 Daniel Scherzer</div></div></body></html>
6 changes: 5 additions & 1 deletion tests/data/blog-index.html
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
<!DOCTYPE html>
<html lang="en"><head><link rel="icon" href="data:,"><meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1"><link rel="stylesheet" type="text/css" href="/resources/default-styles.css"><title>Blog index</title><link rel="stylesheet" type="text/css" href="/resources/blog-styles.css"></head><body><div class="des-navbar"><a href="/Home">Home</a><a href="/files/Resume.pdf">Résumé</a><a href="/OpenSource">Open Source</a><a href="/Work">Work</a><strong class="des-strong-page-link">Blog</strong></div><div class="content-wrapper"><h1>Blog index</h1><div class="blog-preview"><h2>Blog RSS Feed</h2><span class="blog-preview-date">Sunday, 17 May 2026</span><p>Last month, I received <a rel="noopener noreferrer" target="_blank" class="external-link" href="https://github.com/DanielEScherzer/website-content/issues/79">a request</a> to add an RSS feed to my blog. I am
<html lang="en"><head><link rel="icon" href="data:,"><meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1"><link rel="stylesheet" type="text/css" href="/resources/default-styles.css"><title>Blog index</title><link rel="stylesheet" type="text/css" href="/resources/blog-styles.css"></head><body><div class="des-navbar"><a href="/Home">Home</a><a href="/files/Resume.pdf">Résumé</a><a href="/OpenSource">Open Source</a><a href="/Work">Work</a><strong class="des-strong-page-link">Blog</strong></div><div class="content-wrapper"><h1>Blog index</h1><div class="blog-preview"><h2>PHPTek 2026</h2><span class="blog-preview-date">Monday, 25 May 2026</span><p>Last week, I was in Chicago for the PHPTek 2026 conference, where I gave two
talks, one about upcoming changes in PHP 8.6 and the other about semantic
versioning. Between the formal sessions and the informal hallway track
conversations, I left the conference with plenty of new ideas for both PHP
applications and future language improvements. <a href="/Blog/20260525-phptek-2026">Continue reading...</a></p></div><div class="blog-preview"><h2>Blog RSS Feed</h2><span class="blog-preview-date">Sunday, 17 May 2026</span><p>Last month, I received <a rel="noopener noreferrer" target="_blank" class="external-link" href="https://github.com/DanielEScherzer/website-content/issues/79">a request</a> to add an RSS feed to my blog. I am
happy to share that I have added such a feed, available at
<a href="/Blog/feed/rss.xml">/Blog/feed/rss.xml</a>. <a href="/Blog/20260517-blog-rss">Continue reading...</a></p></div><div class="blog-preview"><h2>Notes for PHP Release Managers, Part 2</h2><span class="blog-preview-date">Sunday, 10 May 2026</span><p>A few months ago, I wrote up <a href="./Blog/20260218-release-manager-notes">a blog post</a> about my experience
being a PHP release manager and the kind of commitment that the role requires.
Expand Down
Loading