Engineering,
taught
&
leadership,
practised.
I'm Steven — CTO at Digitonic, a PHP engineer since 2010 and a keen golfer with a terrible handicap. This is where I write it all down.
Latest from the journal
Redact Secrets from Stack Traces with PHP's #[\SensitiveParameter]
PHP prints every argument in a stack trace, so one thrown exception can dump a plaintext password into Sentry. One attribute fixes it.
Use Closures in Constant Expressions in PHP 8.5
PHP 8.5 finally lets a closure live inside a constant expression — attribute arguments, default values and class constants. The static, no-use restriction is where people trip.
Fix Mobile Full-Height Layouts with Tailwind v4 Dynamic Viewport Units
The 100vh mobile overflow bug has a real fix now. Here is how Tailwind v4's dynamic viewport units replace the old JavaScript hacks.