Creating custom Facade fakes in Laravel
– ryangjchandler.co.uk - submitted by Ryan Chandler
Adding fake() methods to your custom facades in applications and packages can provide some nice DX and APIs.
Read more [ryangjchandler.co.uk]
– ryangjchandler.co.uk - submitted by Ryan Chandler
Adding fake() methods to your custom facades in applications and packages can provide some nice DX and APIs.
Read more [ryangjchandler.co.uk]
– frederickvanbrabant.com - submitted by Frederick Vanbrabant
This week I wrote about my experiences with technical and architectural debt. When I was a developer we used to distinguish between code debt (temporary hacks) and architectural debt (structural decisions that bite you later). But in enterprise architecture, it goes way beyond technical implementation.
To me architectural debt is found on all layers.
Application/Infrastructure layer: This is about integration patterns, system overlap, and vendor lock-in. Not the code itself, but how applications interact with each other. Debt here directly hits operations through increased costs and slower delivery.
Business layer: This covers ownership, stewardship, and process documentation. When business processes are outdated or phantom processes exist, people work under wrong assumptions. Projects start on the back foot before they even begin. Issues here multiply operational problems.
Strategy layer: The most damaging level. If your business capability maps are outdated or misaligned, you're basing 3-5 year strategies on wrong assumptions. This blocks transformation and can make bad long-term strategy look appealing.
Read more [frederickvanbrabant.com]
Join 9,500+ smart developers
Get my monthly newsletter with what I learn from running Spatie, building Oh Dear, and maintaining 300+ open source packages. Practical takes on Laravel, PHP, and AI that you can actually use.
No spam. Unsubscribe anytime. You can also follow me on X.
"As a Laravel developer, this is the one newsletter I most look forward to. Freek has a talent for distilling packages or techniques down to something immediately useful - one tip can save you hours and even weeks. It's concise and practical and highly relevant."
– nabilhassen.com - submitted by Nabil Hassen
Laravel 12.35 introduces the deferred queue driver, allowing queued jobs to run right after the HTTP response is sent.
Read more [nabilhassen.com]
A few experiment by Brent. His process involves using noise generation, specifically the xxHash algorithm, to create a cohesive world map with smooth transitions between land and water using linear interpolation (LERP)
Read more [stitcher.io]
Matthew Inman's take on AI Art. Some good points, and beautifully illustrated as always.
Read more [theoatmeal.com]
The State of PHP 2025 survey by JetBrains examines how developers use, prefer, and rely on PHP, showing how this long-standing web language continues to modernize through new frameworks, improved tooling, and AI-assisted workflows.
Read more [blog.jetbrains.com]
Many programmers believe they are tired of programming, but they may actually be frustrated with bureaucracy, lack of product vision, and lack of ownership. Burnout can skew perspectives, and it may be more beneficial to address these issues rather than abandoning programming entirely.
Read more [shubhamjain.co]
A good overview of everything coming in PHP 8.5.
Read more [www.phparch.com]
Shawn Hooper enjoys the new presets we recently added to our Laravel CSP package.
Read more [shawnhooper.ca]
I'm really looking forward to PHP 8.5's pipe operator. Here are a few nice use cases.
Read more [amitmerchant.com]
Dynamic method calls can be useful, but they also come with some risks that you should be aware of.
Read more [ashallendesign.co.uk]
After Geocodio unsuccessfully attempted to optimize with ClickHouse alone, they implemented a solution using Kafka for durable storage and Vector for efficient data ingestion.
Read more [www.geocod.io]
Brent reflects on how using Tailwind CSS has led to a loss of proficiency in writing standard CSS.
Read more [stitcher.io]
Mattias delves into optimizing SQL queries using indexes, focusing on MySQL 8.0. He explains how indexes work, how to analyze slow queries using MySQL’s EXPLAIN keyword, and the impact of different index configurations on query performance.
Read more [ohdear.app]
– nabilhassen.com - submitted by Nabil Hassen
Laravel 12.32 introduces Http::batch, a clean way to send concurrent HTTP requests with lifecycle hooks for progress, success, failure, and finalization.
Read more [nabilhassen.com]
Brent Roose has written an excellent book. This time on his programming journey and the lessons learned along the way. It's not too long, I personally read it in one sitting, and liked it very much.
Read more [things-i-wish-i-knew.com]
– ryangjchandler.co.uk - submitted by Ryan Chandler
A quick guide to the differences between npm ci and npm install.
Read more [ryangjchandler.co.uk]
Laravel Notifications are one of my favourite parts of the framework.
Read more [crnkovic.me]
– doeken.org - submitted by Doeke Norg
Learn how a ClockInterface helps you decouple time and write stable, testable code. It's about time!
Read more [doeken.org]
Database migrations have had a serious refactor in the newest Tempest release
Read more [tempestphp.com]