From 225eda05b0c17b28d60007344cae2e7ad5ac9559 Mon Sep 17 00:00:00 2001 From: Daniel Scherzer Date: Sun, 10 May 2026 10:28:29 -0700 Subject: [PATCH 1/2] [Pages] Updates, May 2025 Updated list of RFCs on the open source page, improved landing page, more recent resume --- files/Resume.pdf | Bin 249284 -> 249360 bytes src/Pages/LandingPage.php | 22 +++++++++++++++++----- src/Pages/OpenSourcePage.php | 23 ++++++++++++++++++++++- tests/data/Home.html | 11 +++++++---- tests/data/OpenSource.html | 2 +- 5 files changed, 47 insertions(+), 11 deletions(-) diff --git a/files/Resume.pdf b/files/Resume.pdf index 5c6b2a75c298ffb39a282c2eb4c774d7e3de8695..994b0c3502bcb453225e0a26cb3bfdcc56dd1813 100644 GIT binary patch delta 9960 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 delta 9919 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 'https://wiki.php.net/rfc/debugable-enums', 'date' => 'March 2026', 'desc' => 'Allow __debugInfo() on enums', - 'status' => 'under discussion', + 'status' => 'implemented in PHP 8.6', ], '#[\Override] for class constants' => [ 'name' => '#[\Override] for class constants', 'link' => 'https://wiki.php.net/rfc/override_constants', 'date' => 'March 2026', 'desc' => 'Extend #[\Override] to target class constants', + 'status' => 'in voting', + ], + 'ReflectionAttribute::getCurrent()' => [ + 'name' => 'Add ReflectionAttribute::getCurrent()', + 'link' => 'https://wiki.php.net/rfc/reflectionattribute-getcurrent', + 'date' => 'April 2026', + 'desc' => 'Add ReflectionAttribute::getCurrent() to connect attributes and targets', + 'status' => 'under discussion' + ], + 'friends' => [ + 'name' => 'Friends', + 'link' => 'https://wiki.php.net/rfc/friends', + 'date' => 'May 2026', + 'desc' => 'Add friendship which bypasses visibility restrictions', + 'status' => 'under discussion' + ], + '#[\Deprecated] for interfaces' => [ + 'name' => '#[\Deprecated] for interfaces', + 'link' => 'https://wiki.php.net/rfc/deprecated_interfaces', + 'date' => 'May 2026', + 'desc' => 'Support the #[\Deprecated] attribute on interfaces', 'status' => 'in draft', ], ]; diff --git a/tests/data/Home.html b/tests/data/Home.html index 6c3b19f..66af69b 100644 --- a/tests/data/Home.html +++ b/tests/data/Home.html @@ -1,9 +1,12 @@ Home

Home

Welcome to Daniel Scherzer's personal website. I am a software engineer with -experience working in PHP, JavaScript, Python, C, and other languages.

I completed my undergraduate education at Tufts University, double majoring in -Computer Science and Political Science and graduating magna cum laude in 2024 with a Bachelor of Science degree. As part of my work in Computer -Science, I chose to write an honors thesis in my senior year, see here for details. I continued at Tufts for graduate school, graduating in 2025 with -a Master of Science in Computer Science degree.

See the links in the navigation bar above for more information about my +experience working in PHP, JavaScript, Python, C, Rust, and other languages.

I completed my undergraduate education at Tufts University, double majoring in +Computer Science and Political Science and graduating magna cum laude with a Bachelor of Science degree. As part of my work in Computer Science, I +chose to write an honors thesis in my senior year, see here for details. I continued at Tufts for graduate school, graduating with a Master +of Science in Computer Science degree.

In my free time, I contribute to various open-source projects, most notably as +a release manager for PHP 8.5 (where I am one of two "rookie" release managers) +and for PHP 8.6 (where I am the "veteran" release manager). I also contribute to +PHP as a developer, and as the maintainer of the built-in Reflection extension.

See the links in the navigation bar above for more information about my experience.

Contact

  • LinkedIn
  • Email: daniel.e.scherzer@gmail.com

Blog

I also have a blog. You can see a full index of my posts here. My latest blog post is:

Notes for PHP Release Managers, Part 2

Sunday, 10 May 2026

A few months ago, I wrote up a blog post about my experience being a PHP release manager and the kind of commitment that the role requires. Now, I want to document some of the decision-making and process related to the diff --git a/tests/data/OpenSource.html b/tests/data/OpenSource.html index f19337b..d0810d7 100644 --- a/tests/data/OpenSource.html +++ b/tests/data/OpenSource.html @@ -10,7 +10,7 @@ was one of the two "rookie" candidates chosen to help with the release. You can read more in my blog post. I subsequently volunteered to serve as the "veteran" release manager for the PHP 8.6 release cycle (blog post).

PHP uses a process of requests for comment when proposing and implementing major -changes; my RFCs include:

Packages

I also wrote multiple open-source PHP packages - though some are currently +changes; my RFCs include:

Packages

I also wrote multiple open-source PHP packages - though some are currently primarily used by me, I am a firm supporter of open-source code and figured that they might be useful to others. The packages that I have created so far are:

Website

The source code for my website is also public, in case the code is useful to others. The actual text about me is probably not going to be relevant, but my From 560f6e78130e00880c65e41f932ab235d0d380cd Mon Sep 17 00:00:00 2001 From: Daniel Scherzer Date: Sun, 10 May 2026 10:31:53 -0700 Subject: [PATCH 2/2] Commas --- src/Pages/OpenSourcePage.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Pages/OpenSourcePage.php b/src/Pages/OpenSourcePage.php index bf391c6..7041a8a 100644 --- a/src/Pages/OpenSourcePage.php +++ b/src/Pages/OpenSourcePage.php @@ -127,14 +127,14 @@ class OpenSourcePage extends BasePage { 'link' => 'https://wiki.php.net/rfc/reflectionattribute-getcurrent', 'date' => 'April 2026', 'desc' => 'Add ReflectionAttribute::getCurrent() to connect attributes and targets', - 'status' => 'under discussion' + 'status' => 'under discussion', ], 'friends' => [ 'name' => 'Friends', 'link' => 'https://wiki.php.net/rfc/friends', 'date' => 'May 2026', 'desc' => 'Add friendship which bypasses visibility restrictions', - 'status' => 'under discussion' + 'status' => 'under discussion', ], '#[\Deprecated] for interfaces' => [ 'name' => '#[\Deprecated] for interfaces',