PHP 8.4 Asymmetric Visibility: The Getters I Finally Deleted
PHP 8.4's asymmetric visibility lets a property be public to read but private to write. I deleted a stack of getters. Here's the syntax, the…
PHP 8.4's asymmetric visibility lets a property be public to read but private to write. I deleted a stack of getters. Here's the syntax, the…
I ran Laravel queues on queue:work + supervisord for two years, then a 3am alert made me switch to Horizon. Here's the config that actually…
A year of shipping PHP 8.4 property hooks in production: what actually replaced my old methods, where they made things worse, and the gotcha I…
PHP 8.4 added array_find, array_find_key, array_any, and array_all. Here's where they actually replace a foreach in real code, and where they don't.
Laravel 12 is the quietest major release I've shipped to production. Here's what actually changed, what didn't, and whether the upgrade is worth your Saturday.
I migrated two Laravel apps to Octane with FrankenPHP and watched p99 latency halve. Here's what broke, what I left on FPM, and the real…
PHP 8.4 property hooks and asymmetric visibility, with before-and-after code. The getter and setter boilerplate I deleted, and where these features bite back.
I've shipped Laravel apps with Livewire, Inertia.js, and a separate React SPA. Here's how I actually choose between them, with code and a few regrets.
I moved my realtime features off Pusher to self-hosted Laravel Reverb. Here's the actual code diff, what got better, and the production gotchas that bit…
Why Filament PHP replaced my hand-rolled Laravel admin panels, the resource patterns I actually use, and where I still drop down to raw Blade.