As part of preparing for my Longhorn PHP talk about what is new in PHP 8.5, I have been going through various PHP tools and checking to what extent they support the new features. When the support is lacking, I have sometimes tried to add it myself; this led me to making my first patch in Rust. Continue reading...
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...
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...
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...
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 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...
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...
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...
Today, I launched the initial version of my personal website (where you are most likely reading this blog post). This marks the cumulation of over a month of preparation and development, because I wanted to create the website myself, rather than using a website builder like WordPress. While I do rely on a few external libraries, the content and styles are all mine. Continue reading...