HomeRésuméOpen SourceWorkBlog

Blog posts about programming with PHP

(clear filter)

No PHP 8.6.0RC1

Wednesday, 23 September 2026

Tomorrow, the PHP 8.6 release manager team is planning to announce the first release candidate (RC) of PHP 8.6, PHP 8.6.0RC2. So, what happened to PHP 8.6.0RC1? Continue reading...

Joining the PHP Ecosystem Security Team

Wednesday, 09 September 2026

I'm excited to share that I am joining the PHP Foundation's Ecosystem Security Team to help harden the PHP codebase. Continue reading...

Rewriting Reflection with Rust

Friday, 10 July 2026

Over the last few weeks, I have been working on rewriting the PHP Reflection extension in Rust as an exercise in building extensions in Rust. In addition to understanding how to implement extensions in Rust, the process also highlighted a number of ways that the Reflection extension could be improved. Continue reading...

PHPTek 2026

Monday, 25 May 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. Continue reading...

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 latest release that I oversaw, PHP 8.5.6. Continue reading...

The Story of PHP 8.5.6 Release Candidate 3

Thursday, 30 April 2026

I have previously had to skip a non-stable release (PHP 8.5.0 alpha3), and to create an extra unplanned release candidate (PHP 8.5.0 RC5). For PHP 8.5.6 release candidate 3, I had to do both: release candidate 2 was unplanned, and then an error led to skipping it, resulting in release candidate 3 that I just announced. Here is what happened. Continue reading...

PHP 8.6 Release Manager

Thursday, 16 April 2026

I'm excited to announce that I will be serving as the "veteran" release manager for the PHP 8.6 release cycle. In that role I will be mentoring two new "rookie" release managers to ensure a smooth and successful release process. Continue reading...

Introducing define_deprecated() for PHP

Friday, 10 April 2026

In PHP 8.5, I introduced support for attributes on constants, which allows marking compile-time global constants as deprecated. However, that functionality was not made easily available when defining constants at runtime, or in code that supports older versions of PHP. My new library, danielescherzer/define-deprecated, provides that support. Continue reading...

Friends in PHP

Monday, 09 March 2026

As I mentioned in my last blog post, while at ConFoo I and a few other developers worked on some ideas for adding friendship support to PHP. To be clear, these are just ideas at the moment, but I figured they were worth sharing. Continue reading...

ConFoo 2026

Monday, 02 March 2026

Last week, I was in Montreal for the ConFoo conference, where I gave two talks, one about Rust and one about PHP. I also attended plenty of fascinating talks given by others, and absorbed some new ideas along the way. Continue reading...

Notes for PHP Release Managers

Wednesday, 18 February 2026

Each release of PHP has a team of release managers responsible for managing the release process. Next month, the other PHP 8.5 release managers and I will begin the process of selecting the release managers for PHP 8.6. I figured it might be helpful to document my experiences so far, to give potential volunteers some extra context. Continue reading...

This Year in PHP (2025)

Tuesday, 20 January 2026

Now that we are a few weeks into 2026, I figured it would be a good opportunity for me to reflect on my PHP contributions in 2025. It was a pretty big year for me in terms of contributing to the php-src repo. Continue reading...

MergePHP, November 2025

Tuesday, 18 November 2025

Last week, I presented "PHP 8.5: New Features from the Source" for a second time, this time through MergePHP, an online meetup combining multiple PHP user groups. The talk generally went better than it did the previous time I presented on that topic, at Longhorn PHP. Continue reading...

The Story of PHP 8.5.0 Release Candidate 5

Thursday, 13 November 2025

PHP 8.5.0 Release Candidate 4, announced last week, was expected to be the last release candidate (RC) of the PHP 8.5.0 development cycle, before the general availability release next week. But, earlier today I announced the release of PHP 8.5.0 RC5. So, why was an extra release candidate needed? Continue reading...

Longhorn PHP 2025

Wednesday, 29 October 2025

Last week, I attended the Longhorn PHP conference in Austin, Texas. I had the opportunity to meet with a slew of open source contributors, listen to some amazing talks, and even present my own. Continue reading...

Out-of-Band Signaling

Friday, 29 August 2025

Sometimes, code needs to be able to signal an error has occurred. Perhaps some invariant was violated. Perhaps an invalid parameter was used. Regardless of the reason, there are two ways to signal an issue: "in-band signaling", and "out-of-band signaling". Continue reading...

#[\DelayedTargetValidation] Attribute Explained

Wednesday, 20 August 2025

PHP 8.5 will come with a new attribute, #[\DelayedTargetValidation], that is intended to help libraries that support running on multiple versions of PHP. The attribute can be a bit confusing, so as the author I figured I should write up a (hopefully helpful) guide. Continue reading...

No PHP 8.5.0alpha3

Friday, 01 August 2025

Yesterday, I announced the release of the last alpha version of PHP 8.5.0, labeled 8.5.0alpha4. This comes two weeks after the previous version, 8.5.0alpha2, was announced. So, what happened to 8.5.0alpha3? Continue reading...

Pygments Syntax Highlighting for Markdown

Friday, 18 July 2025

This week, I published a new composer package that adds support for syntax highlighting of code snippets embedded in Markdown documents. The new package uses the Pygments highlighting library (from Python) and connects it to the CommonMark PHP library for rendering Markdown. Continue reading...

A Tale of Two RFCs

Sunday, 22 June 2025

A few minutes ago, my third RFC, adding support for promoted final properties, was implemented after being approved unanimously. This comes after my second RFC, adding support for never parameters, was rejected by the community. Continue reading...

Attributes on constants

Tuesday, 29 April 2025

Earlier today, the attributes-on-constants RFC implementation was finally merged. This was a project I worked on for months and a significant reason I became more active as a PHP core developer. The initial motivation was to add a way for constants to be marked as deprecated, so that MediaWiki could use that feature to signal deprecated constants instead of relying solely on documentation. Continue reading...

PHP 8.5 Release Manager

Thursday, 17 April 2025

I'm honored to share that the PHP internals development community has elected me as one of the two "rookie" release managers for the PHP 8.5 release cycle. Working alongside my fellow release managers, I hope to help ensure a smooth and successful release process. Continue reading...