| Curated news all about PHP. Here's the latest edition |
|
|
September 10th 2026 |
|
Hi everyone,
Another week, another fresh edition of PHPWeekly straight to your inbox. This week we have articles on Why Most Developers Never Really Understand Laravel, What actually happens when you push a PHP application to millions of requests and how far can it really go?, and a reader submitted article about using nested transactions in Laravel for years and still had the main idea wrong. In Tutorials we have guides for Laravel Sanctum 419 Error: A 5-Step Debugging Guide, Crontab syntax basics, and how it differs from WP-Cron, and The Soft Delete Bug That Lets Duplicate Accounts Slip Through (And the Fix in Laravel). Finally in the Reading section we have articles on 20 Microservices Won’t Fix Your Laravel App — The Right Boundaries Will, Using AI as a deterministic translation tool in Laravel, and Nginx, Explained Through a Busy Restaurant.
We have all that and more, so we do hope you enjoy this week's newsletter. If you have an article, tutorial or podcast that you would like to be featured in our newsletter, feel free to reach out to us at articles@phpweekly.com.
All the best,
Adrian
|
Please help us by clicking to our sponsors:
Give Your Unused Startup a Second Chance
List your unfinished SaaS, app, or project for free. Sell it, find a co-founder, or let someone else bring it to life. No fees, no hassle - just new opportunities!
|
Articles
No need
I recently had an interesting conversation with Nuno on our podcast about TypePHP. In case you don't know: TypePHP is a new language based on PHP by the Swoole team, which compiles to native binaries.
The Most Dangerous Backup Is the One That Reports Success
TL;DR — I spent today building out a backup subsystem, and almost every design decision that mattered came down to the same question: can this thing fail in a way that still renders as a green tick? A backup that fails loudly is an annoyance. A backup that fails quietly is the reason the restore doesn't exist.
Surviving the Thundering Herd: Cache Stampede Prevention
Caching is the ultimate silver bullet for backend performance. If a complex Laravel query takes 3 seconds to aggregate a massive financial dashboard, you wrap it in Cache::remember() for 60 minutes. Instantly, your API response time drops from 3,000 milliseconds to 3 milliseconds.
Why Most Developers Never Really Understand Laravel
It took me a long time to realise Laravel was never about writing less code. It was about thinking differently.
10 MySQL Performance Optimization Techniques Every PHP Developer Must Know
Slow MySQL queries can cripple your web application. This guide covers indexing, query optimization, table design, and caching techniques to make your database run 10x faster.
PHP Doesn’t Scale? Let’s Actually Find Out.
What actually happens when you push a PHP application to millions of requests and how far can it really go?
I Thought I Knew What A Savepoint Was
Building Cogway's interactive explainers for nested transactions and eager loading forced an exactness that years of using them never did.
|
Tutorials and Talks
Group Adjacent Collection Items in Laravel with chunkBy()
Laravel 13.30 introduces the chunkBy() method, which is a convenient shorthand for the most common chunkWhile() use case.
Laravel queue:work Now Prints Why the Worker Stopped
A queue:work process can exit for nine different reasons, and until Laravel 13.30 the console output looked the same for all of them.
Laravel Sanctum 419 Error: A 5-Step Debugging Guide
Your Laravel API works. Your credentials are correct. /sanctum/csrf-cookie might even return 204.
WordPress Image Optimization Guide (Without Ruining Quality)
Images are usually the heaviest bytes — resize before upload and serve modern formats. High-performance enterprise architecture requires precision engineering, strict observability, and resilience at scale.
Migrating Legacy Websites to Modern Laravel: A Practical, Battle-Tested Guide
There's a particular kind of dread that hits when you open a legacy codebase for the first time. Global variables flying around, mysql_query() calls buried three functions deep, a functions.php that's 4,000 lines long, and zero tests.
Laravel for Django Developers: A Practical Guide to Laravel Architecture
If you've spent some time building applications with Django and have decided to explore Laravel, you may initially feel like you're learning backend development all over again.
Three PHP-FPM failure modes and how to actually diagnose them
Tuning guides talk about throughput. Nobody pages you about throughput. They page you about symptoms, and the useful skill is mapping a symptom back to a cause before you spend money on hardware.
The Soft Delete Bug That Lets Duplicate Accounts Slip Through (And the Fix in Laravel)
A client creates an account using the email elias@example.com. Later, they delete the account. A few weeks later, they register again, using the same email they used in their former account.
Crontab syntax basics, and how it differs from WP-Cron
"What does */5 * * * * actually mean?" — anyone setting up a scheduled task on a server has probably stared at that row of asterisks at some point. If you run WordPress, you may already be familiar with inspecting WP-Cron's internals through WP-CLI, but the actual crontab syntax used by the OS itself is something many people never learn properly.
PHP count_chars() Function: How to Analyze Characters in a String
When working with text in PHP, you may need to find which characters are present in a string and how frequently they occur. The count_chars() function is used to get information about the characters in a string. |
News and Announcements
The Laracon Archive
This Laracon Archive is a neat little project made by Prince John Santillan that is a historical record of all Laracon talks.
Collections chunkBy() and Storage Path Hardening in Laravel 13.30
Laravel 13.30 adds chunkBy() for grouping adjacent collection items, runs Storage::path() through the same path normalizer every other filesystem call uses, and prints the reason a queue worker stopped directly in queue:work output.
August 31 – September 6, 2026 - A Week of Symfony #1027
This week, Symfony 6.4.45, 7.4.18, and 8.1.6 were released with numerous bug fixes and hardening improvements. Meanwhile, we introduced symfony lsp:check, a new command that brings Symfony-aware diagnostics to your CI pipeline, catching unknown routes, missing templates, and configuration errors. Finally, we announced that you'll be able to meet the Symfony Core Team at the API Platform Conference 2026 in Lille on September 17–18.
Digital Sovereignty Is Written in PHP
Germany is spending €108 million to move its federal websites onto a PHP application. The money is the budget for the eleventh version of the Government Site Builder, the German federal administration's standard content management solution: €26.88 million for product development and support, €73.2 million for migration and relaunch, €8 million for operations, phased over four years.
This Week In PHP Internals | Sept 2, 2026
For the third week running, no PHP RFC is in the voting phase — so instead of a scoreboard, here's a contributor who scanned half a million PHP files to answer a question nobody had asked out loud: what exactly is a PHP identifier? Plus an RFC to end PHP's endorsement of PEAR, a real disagreement about whether base conversion counts as parsing, a new array function with four people against it and nobody for it, and three releases in three days.
|
Podcasts and Vlogs
The Stack Overflow: Scaling your money safely with AI
Ryan chats with Srini Venkatesan, CTO at PayPal, about validating AI-generated deterministic code for security, developing autonomous SDLC harnesses with iterative feedback loops, and creating a seamless headless checkout experience.
North Meets South Podcast: Cash Money AI Power Hour
Jake and Michael are joined by TJ Miller, David Hemphill, and Chris Gmyr to talk about the realities of working with non-technical stakeholders that are now empowered to deliver software through AI.
Maintainable Podcast: John Athayde: Maintaining the User Side of Software
Software maintainability is often discussed through the codebase, but users experience years of accumulated decisions through the interface.
Software Engineering Radio: SE Radio 736: Sahil Walia on Apache Iceberg
Sahil Walia, Senior Technical Architect at Snowflake, joins host Robert Blumen for a deep dive into Apache Iceberg.
Developer Tea: You Don't Learn Helplessness - You Learn Control
In 1967, a study on shock avoidance gave us "learned helplessness," and for nearly fifty years that was the prevailing explanation for why people give up.
Shoptalk Show: Terminal UX, Running Multiple Services, Don’t Settle for an App
We want your positive tech support stories! Topics this week include wrangling DNS/DKIM/DMARC for a friend's newsletter, comparing terminal tools like TMUX and Herdr, and juggling Rails, Node, and AI agent processes, and figuring out which tooling you like best.
WP Builds: 483 – Why accessibility should be every WordPress developer’s priority with Danielle Zarcaro
Nathan Wrigley talks with Danielle Zarcaro about accessibility in web development, particularly within WordPress. Danielle shares the journey from English studies to web development and specialisation in accessibility, discussing the challenges, misconceptions, and incremental ways to improve website accessibility.
PHP Architect: The PHP Podcast 2026.09.02
John’s out, Joe jumps in at the last second, a brand-new intro gets debuted mid-flight, a new PHP Foundation podcast gets announced, Frank’s database issues (not production), and somebody’s selling 37 elePHPants to fund a startup and open-heart surgery.
Mostly Technical: 148: AI Psychosis Day
Ian and Aaron discuss the release of GPT-6 "Astra", building Solo for Linux, Ian's camera setup, why Outro isn't out yet, and so much more.
Syntax: Cursor & OpenAI Break Up
The messy breakup is official; as of November 12, OpenAI's models are getting pulled from Cursor, and we're digging into who's really to blame (and why Wes called it).
|
|
Using AI as a deterministic translation tool in Laravel
LLMs are non-deterministic. If you ask one the same question twice, you can get two different answers. You cannot rely on them entirely to build tooling on. But you can still get deterministic behaviour out of them if you split the tasks into reasoning (the model) and execution (scripts).
Nginx, Explained Through a Busy Restaurant
If you've ever tried to explain Nginx to someone non-technical — or honestly, tried to build a clean mental model of it yourself — this analogy might help more than any diagram.
Symfony ObjectMapper: Simplifying Object-to-Object Mapping
This component transforms one object into another, simplifying tasks such as converting DTOs (Data Transfer Objects) into entities or vice versa. It can also be helpful when decoupling API input/output from internal models, particularly when working with legacy code or implementing hexagonal architectures.
It’s Not a Leak: How My Symfony App Ran Out of Memory Five Ways
Five boring Doctrine patterns, one of which was a denial-of-service primitive sitting in production for years.
20 Microservices Won’t Fix Your Laravel App — The Right Boundaries Will
Why splitting your Laravel monolith into “microservices” usually creates more bugs, not less.
PHP 8.5 Finally Fixes the Inside-Out Problem.
You’ve written `trim(strtolower(strip_tags($input)))` more times than you’d like to admit. PHP 8.5’s pipe operator lets you write that same chain in the order you actually think about it and the difference is bigger than it sounds.
|
Interesting Projects, Tools and Libraries
znanylekarz/zend-permissions-acl
provides a lightweight and flexible access control list (ACL) implementation for privileges management.
dave-liddament/php-language-extensions
Attributes for extending the PHP language, using static analysis to enforce new language constructs.
nicmart/string-template
StringTemplate is a very simple string template engine for php. I've written it to have a thing like sprintf, but with named and nested substutions.
h4cc/wkhtmltopdf-i386
Convert html to pdf using webkit (qtwebkit). Static linked linux binary for i386 systems.
wpscholar/url
A PHP class for parsing and manipulating URLs.
petebishwhip/laradocs
Maintain beautiful, version-controlled documentation alongside your Laravel codebase. Markdown in, a polished docs site out.
huluti/breadcrumbs-bundle
Breadcrumbs bundle for Symfony.
renoki-co/php-k8s
Control your Kubernetes clusters with this PHP-based Kubernetes client. It supports any form of authentication, the exec API, and it has an easy implementation for CRDs.
xethron/laravel-4-generators
Rapidly generate resources, migrations, models, and much more.
neos/event-sourcing
Lean and opinionated way to integrate Event Sourcing and CQRS pattern in your Flow framework package.
|
Jobs
------
Do you have a position that you would like to fill? PHP Weekly is ideal for targeting developers and the cost is only $75/week for an advert. Please let me know if you are interested by emailing me at articles@phpweekly.com |
Please help us by clicking to our sponsor:
Protect your PHP Code
Why not try SourceGuardian 17. Click here to download a 14 Day Trial copy. Protect your code using Windows, Linux or Mac and run everywhere with our free Loaders. |
So, how did you like this issue?
|
|
|
|
|
|