Skip to main content
WritingSpeakingCodeAboutNow
Pillar

PHP & Laravel

The language got good. Most code has not caught up with it.

50 articles · 408 minutes of reading

PHP got good and the ecosystem has not quite caught up with itself. Enums, readonly classes, fibers, property hooks, and by 8.5 a type system strong enough to design against rather than around. Plenty of code is still written the way it was written for PHP 7, running on a far better engine than it knows about.

Laravel is the same story from the other end. The framework hands you so much that the path of least resistance is to let it make your design decisions, and then a single feature touches ten files and nobody can say why it has to. A fair amount of what I write here is about using less of it, deliberately.

Framework craft, the parts that still hold up years later: the container, Eloquent without the footguns, the PSRs worth importing, and tests that assert behaviour rather than mocking their way around it.

Start here

Fibers Plus the Polling API: What Async PHP Actually Looks Like Now

Fibers give PHP concurrency. The Polling API gives it native epoll and kqueue. Here's how to build on both, with honest benchmarks.

Jul 2026 · 12 min read

The Object Design Style Guide for PHP 8.5 - Discipline without friction

How PHP 8.5 absorbs Noback's Object Design Style Guide patterns directly into syntax, eliminating ceremony.

Feb 2026 · 12 min read

Testing Actions, Not Mocks

Mocking your own Actions tests the wiring, not the behaviour. How I test Laravel Action classes for real with Pest, and where fakes still belong.

Jun 2026 · 9 min read

The PSR Standards You Are Probably Ignoring

Five PSR standards that most PHP developers skip. Master them and write code that works anywhere, tested easily, and tied to nothing.

May 2026 · 12 min read

Everything in PHP & Laravel

Sept 202610 min read

The UK is mandating e-invoicing in 2029, and your invoicing code is not ready

From 2029 every UK VAT invoice has to be structured data that passes about eleven hundred rules. What that means for the invoices table you already have, and the four fields that break first.

Jul 202612 min read

Fibers Plus the Polling API: What Async PHP Actually Looks Like Now

Fibers give PHP concurrency. The Polling API gives it native epoll and kqueue. Here's how to build on both, with honest benchmarks.

Jun 20269 min read

The Polling API Is the Most Underrated RFC PHP Has Shipped in Years

The Polling API gives PHP 8.6 native epoll and kqueue at last. Here's why the RFC nobody discussed is the most consequential in years.

Jun 20269 min read

Testing Actions, Not Mocks

Mocking your own Actions tests the wiring, not the behaviour. How I test Laravel Action classes for real with Pest, and where fakes still belong.

May 202612 min read

The PSR Standards You Are Probably Ignoring

Five PSR standards that most PHP developers skip. Master them and write code that works anywhere, tested easily, and tied to nothing.

Mar 202610 min read

Building Real Applications with TempestPHP

How to structure TempestPHP applications with domain-first folders, repositories, command handlers, and thin controllers that stay maintainable.

Feb 202612 min read

The Object Design Style Guide for PHP 8.5 - Discipline without friction

How PHP 8.5 absorbs Noback's Object Design Style Guide patterns directly into syntax, eliminating ceremony.

Oct 202512 min read

Static site generation in PHP with Tempest

Learn how Tempest brings static site generation to PHP, making it easy to build fast, secure, and scalable sites with familiar patterns.

Jul 20259 min read

An educational look into the Tempest PHP framework

Discover how Tempest, a modern PHP framework, uses code discovery and the latest PHP features to simplify app development and boost productivity.

Feb 202510 min read

Advanced Authorization methods in Laravel

Unravel Laravels authorization built-in Gates, Policies & advanced ReBAC, ABAC, PBAC methods for secure, scalable app access control.

Feb 20259 min read

Diving into Notifications

Learn to send multi-channel notifications in Laravel with email, Slack, and in-app alerts.

Feb 20243 min read

Building a Homelab Dashboard with Laravel and Livewire

Follow my journey as I build a powerful homelab dashboard using Laravel and Livewire, automating and monitoring my setup along the way.