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
8 changes: 5 additions & 3 deletions src/Pages/OpenSourcePage.php
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,8 @@ class OpenSourcePage extends BasePage {
'conf' => 'PHP Tek 2026',
'loc' => 'Chicago, Illinois',
'date' => 'May 2026',
'upcoming' => true,
'slides' => '20260520 PHPTek PHP 8.6 presentation.pdf',
'blog' => '20260525-phptek-2026',
],
],
],
Expand All @@ -66,7 +67,8 @@ class OpenSourcePage extends BasePage {
'conf' => 'PHP Tek 2026',
'loc' => 'Chicago, Illinois',
'date' => 'May 2026',
'upcoming' => true,
'slides' => '20260521 PHPTek SemVer presentation.pdf',
'blog' => '20260525-phptek-2026',
],
],
],
Expand Down Expand Up @@ -120,7 +122,7 @@ class OpenSourcePage extends BasePage {
'link' => 'https://wiki.php.net/rfc/override_constants',
'date' => 'March 2026',
'desc' => 'Extend #[\Override] to target class constants',
'status' => 'in voting',
'status' => 'pending implementation / landing',
],
'ReflectionAttribute::getCurrent()' => [
'name' => 'Add ReflectionAttribute::getCurrent()',
Expand Down
4 changes: 2 additions & 2 deletions tests/data/OpenSource.html
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<!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>Open source</title></head><body><div class="des-navbar"><a href="/Home">Home</a><a href="/files/Resume.pdf">Résumé</a><strong class="des-strong-page-link">Open Source</strong><a href="/Work">Work</a><a href="/Blog">Blog</a></div><div class="content-wrapper"><h1>Open source contributions</h1><p>I contribute to open-source projects on GitHub as <a href="https://github.com/DanielEScherzer" target="_blank" class="external-link">@DanielEScherzer</a>.</p><h3 class="subsection-header">Conference Presentations</h3><p>I have given a few presentation at various open-source-related conferences. The
slides and my post-conference write-ups in my blog are listed below. Note that
even when a presentation is given multiple times, the content changes.</p><ul><li>&quot;Semantic Versioning and the PHP Ecosystem: A Reality Check,&quot; <em>PHP Tek 2026</em>. Chicago, Illinois, May 2026. Upcoming.</li><li>&quot;PHP 8.6: The Inside Scoop,&quot; <em>PHP Tek 2026</em>. Chicago, Illinois, May 2026. Upcoming.</li><li>&quot;Introduction to Rust for Experienced Software Developers,&quot; <em>ConFoo Montreal 2026</em>. Montreal, Canada, February 2026. (<a href="./files/20260225 ConFoo Rust presentation.pdf">Slides</a>, <a href="./blog/20260302-confoo#content-intro-to-rust">Blog write up</a>)</li><li>&quot;PHP 8.5: New Features from the Source&quot;<ul><li><em>ConFoo Montreal 2026</em>. Montreal, Canada, February 2026. (<a href="./files/20260226 ConFoo PHP presentation.pdf">Slides</a>, <a href="./blog/20260302-confoo#content-php-85">Blog write up</a>)</li><li><em>MergePHP</em>. Remote, November 2025. (<a href="./files/20251117 MergePHP presentation.pdf">Slides</a>, <a href="./blog/20251118-mergephp-talk">Blog write up</a>)</li><li><em>Longhorn PHP Conference</em>. Austin, Texas, October 2025. (<a href="./files/20251025 Longhorn PHP presentation.pdf">Slides</a>, <a href="./blog/20251029-longhorn-php#content-my-talk">Blog write up</a>)</li></ul></li></ul><h3 class="subsection-header">PHP</h3><p>I started contributing to the PHP source in August 2024, working primarily on
even when a presentation is given multiple times, the content changes.</p><ul><li>&quot;Semantic Versioning and the PHP Ecosystem: A Reality Check,&quot; <em>PHP Tek 2026</em>. Chicago, Illinois, May 2026. (<a href="./files/20260521 PHPTek SemVer presentation.pdf">Slides</a>, <a href="./blog/20260525-phptek-2026">Blog write up</a>)</li><li>&quot;PHP 8.6: The Inside Scoop,&quot; <em>PHP Tek 2026</em>. Chicago, Illinois, May 2026. (<a href="./files/20260520 PHPTek PHP 8.6 presentation.pdf">Slides</a>, <a href="./blog/20260525-phptek-2026">Blog write up</a>)</li><li>&quot;Introduction to Rust for Experienced Software Developers,&quot; <em>ConFoo Montreal 2026</em>. Montreal, Canada, February 2026. (<a href="./files/20260225 ConFoo Rust presentation.pdf">Slides</a>, <a href="./blog/20260302-confoo#content-intro-to-rust">Blog write up</a>)</li><li>&quot;PHP 8.5: New Features from the Source&quot;<ul><li><em>ConFoo Montreal 2026</em>. Montreal, Canada, February 2026. (<a href="./files/20260226 ConFoo PHP presentation.pdf">Slides</a>, <a href="./blog/20260302-confoo#content-php-85">Blog write up</a>)</li><li><em>MergePHP</em>. Remote, November 2025. (<a href="./files/20251117 MergePHP presentation.pdf">Slides</a>, <a href="./blog/20251118-mergephp-talk">Blog write up</a>)</li><li><em>Longhorn PHP Conference</em>. Austin, Texas, October 2025. (<a href="./files/20251025 Longhorn PHP presentation.pdf">Slides</a>, <a href="./blog/20251029-longhorn-php#content-my-talk">Blog write up</a>)</li></ul></li></ul><h3 class="subsection-header">PHP</h3><p>I started contributing to the PHP source in August 2024, working primarily on
bug fixes, improvements to the <a href="https://www.php.net/manual/en/book.reflection.php" target="_blank" class="external-link">Reflection extension</a> and various cleanup. In March 2025, I requested and was granted access to make
direct changes (and approve others&#039; changes) to PHP. I also became the official
maintainer of the reflection extension.</p><p>Also in March 2025, I volunteered to serve as one of the release managers for
Expand All @@ -10,7 +10,7 @@
was one of the two &quot;rookie&quot; candidates chosen to help with the release. You can
read more in <a href="/Blog/20250417-php85-release-manager">my blog post</a>. I subsequently volunteered to serve as the &quot;veteran&quot; release manager for the PHP
8.6 release cycle (<a href="/Blog/20260416-php86-release-manager">blog post</a>).</p><p>PHP uses a process of requests for comment when proposing and implementing major
changes; my RFCs include:</p><ul><li>May 2026: <a href="https://wiki.php.net/rfc/deprecated_interfaces" target="_blank" class="external-link">#[\Deprecated] for interfaces</a> - Support the #[\Deprecated] attribute on interfaces (in draft)</li><li>May 2026: <a href="https://wiki.php.net/rfc/friends" target="_blank" class="external-link">Friends</a> - Add friendship which bypasses visibility restrictions (under discussion)</li><li>April 2026: <a href="https://wiki.php.net/rfc/reflectionattribute-getcurrent" target="_blank" class="external-link">Add ReflectionAttribute::getCurrent()</a> - Add ReflectionAttribute::getCurrent() to connect attributes and targets (under discussion)</li><li>March 2026: <a href="https://wiki.php.net/rfc/override_constants" target="_blank" class="external-link">#[\Override] for class constants</a> - Extend #[\Override] to target class constants (in voting)</li><li>March 2026: <a href="https://wiki.php.net/rfc/debugable-enums" target="_blank" class="external-link">Debugable Enums</a> - Allow __debugInfo() on enums (implemented in PHP 8.6)</li><li>July 2025: <a href="https://wiki.php.net/rfc/deprecated_traits" target="_blank" class="external-link">#[\Deprecated] for traits</a> - Support the #[\Deprecated] attribute on traits (implemented in PHP 8.5)</li><li>July 2025: <a href="https://wiki.php.net/rfc/filter_throw_on_failure" target="_blank" class="external-link">FILTER_THROW_ON_FAILURE</a> - Add FILTER_THROW_ON_FAILURE flag to the filter extension (implemented in PHP 8.5)</li><li>June 2025: <a href="https://wiki.php.net/rfc/delayedtargetvalidation_attribute" target="_blank" class="external-link">#[\DelayedTargetValidation] attribute</a> - Delaying compile-time attribute target validation errors with #[\DelayedTargetValidation] (implemented in PHP 8.5)</li><li>March 2025: <a href="https://wiki.php.net/rfc/final_promotion" target="_blank" class="external-link">Final Property Promotion</a> - Adding support for final modifiers in constructor property promotion (implemented in PHP 8.5)</li><li>November 2024: <a href="https://wiki.php.net/rfc/attributes-on-constants" target="_blank" class="external-link">Attributes on Constants</a> - Adding support for attributes on compile-time constants (implemented in PHP 8.5)</li></ul><h3 class="subsection-header">Packages</h3><p>I also wrote multiple open-source PHP packages - though some are currently
changes; my RFCs include:</p><ul><li>May 2026: <a href="https://wiki.php.net/rfc/deprecated_interfaces" target="_blank" class="external-link">#[\Deprecated] for interfaces</a> - Support the #[\Deprecated] attribute on interfaces (in draft)</li><li>May 2026: <a href="https://wiki.php.net/rfc/friends" target="_blank" class="external-link">Friends</a> - Add friendship which bypasses visibility restrictions (under discussion)</li><li>April 2026: <a href="https://wiki.php.net/rfc/reflectionattribute-getcurrent" target="_blank" class="external-link">Add ReflectionAttribute::getCurrent()</a> - Add ReflectionAttribute::getCurrent() to connect attributes and targets (under discussion)</li><li>March 2026: <a href="https://wiki.php.net/rfc/override_constants" target="_blank" class="external-link">#[\Override] for class constants</a> - Extend #[\Override] to target class constants (pending implementation / landing)</li><li>March 2026: <a href="https://wiki.php.net/rfc/debugable-enums" target="_blank" class="external-link">Debugable Enums</a> - Allow __debugInfo() on enums (implemented in PHP 8.6)</li><li>July 2025: <a href="https://wiki.php.net/rfc/deprecated_traits" target="_blank" class="external-link">#[\Deprecated] for traits</a> - Support the #[\Deprecated] attribute on traits (implemented in PHP 8.5)</li><li>July 2025: <a href="https://wiki.php.net/rfc/filter_throw_on_failure" target="_blank" class="external-link">FILTER_THROW_ON_FAILURE</a> - Add FILTER_THROW_ON_FAILURE flag to the filter extension (implemented in PHP 8.5)</li><li>June 2025: <a href="https://wiki.php.net/rfc/delayedtargetvalidation_attribute" target="_blank" class="external-link">#[\DelayedTargetValidation] attribute</a> - Delaying compile-time attribute target validation errors with #[\DelayedTargetValidation] (implemented in PHP 8.5)</li><li>March 2025: <a href="https://wiki.php.net/rfc/final_promotion" target="_blank" class="external-link">Final Property Promotion</a> - Adding support for final modifiers in constructor property promotion (implemented in PHP 8.5)</li><li>November 2024: <a href="https://wiki.php.net/rfc/attributes-on-constants" target="_blank" class="external-link">Attributes on Constants</a> - Adding support for attributes on compile-time constants (implemented in PHP 8.5)</li></ul><h3 class="subsection-header">Packages</h3><p>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:</p><ul><li><a href="https://packagist.org/packages/danielescherzer/common-phpcs" target="_blank" class="external-link">danielescherzer/common-phpcs</a> - Collection of common codesniffer standards for my projects</li><li><a href="https://packagist.org/packages/danielescherzer/commonmark-ext-pygments-highlighter" target="_blank" class="external-link">danielescherzer/commonmark-ext-pygments-highlighter</a> - CommonMark extension for code highlighting with Pygments</li><li><a href="https://packagist.org/packages/danielescherzer/define-deprecated" target="_blank" class="external-link">danielescherzer/define-deprecated</a> - Allow defining deprecated global constants at runtime without dropping PHP &lt;8.5 support</li><li><a href="https://packagist.org/packages/danielescherzer/html-builder" target="_blank" class="external-link">danielescherzer/html-builder</a> - Tools for building HTML</li></ul><h3 class="subsection-header">Website</h3><p>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
Expand Down
Loading