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
Laravel Context: Request Data That Follows Your Logs and Jobs
Stop threading a request ID through every log call. Laravel Context sets it once in middleware and follows the request into every queued job it dispatches.
PHP 8.4: Chain Methods on new Without the Extra Parentheses
PHP 8.4 drops the wrapper parentheses around new, so (new Foo())->bar() becomes new Foo()->bar(). Here's the one rule to remember and the precedence traps to avoid.
Laravel AI SDK Tool Calling: Let the Model Run Your PHP
Give a Laravel AI agent real abilities: typed PHP tools the model can call to look up data, with enum-constrained inputs and a hard cap on runaway loops.