Hi everyone,
We have news, updates and anything related to the php community. This week we the php Foundation has added Daniel Scherzer to the Ecosystem Security Team. The php team has released the third beta version PHP 8.6.0, and Symfony also released updates for Symfony 8.1.7, Symfony 7.4.19 & Symfony 6.4.46. In Tutorials we have guides for Formatting Laravel Blade Templates, Debugging PHP in Docker with an AI Agent and Xdebug, and a layer-by-layer workflow to find whether slow WordPress TTFB comes from DNS, caching. Finally in our Reading section, we have articles on The Password Reset Flow, 4 things WordPress.org made me fix before the review even started, and Docker Explained Simply.
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 [email protected].
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
What's New in PHP 8.6
PHP's annual release is just around the corner! PHP 8.6 will be released on November 19, 2026. PHP 8.6 is in beta now, with a feature freeze on September 22 and the first release candidate two days later.
How to Calculate 0.1 Plus 0.2 Correctly in PHP?
Quick quiz before you read: <?php var_dump(0.1 + 0.2 === 0.3); This returns false. Now, as developers who proudly know IEEE's floating rules, many of you may take a sip of your coffee and say: Hey, that's not news anymore. We all know this classic case that warns generations of junior developers that calculating directly with floats might cause bugs.
PHP 8.6 Partial Function Application: The Arrow Functions I Deleted
Short version for the impatient: PHP 8.6 lets you write str_replace('hello', 'hi', ?) and get back a closure with one parameter, properly typed, that you can hand to array_map or pipe into. If you want to know why I care this much about a question mark, read on.
Raw PHP, opcache, JIT, and AOT: what actually happens to your code
A few weeks ago, I posted a carousel on LinkedIn about TypePHP, the ahead-of-time compiler the Swoole team open sourced. It turns PHP source into a native executable that starts on its own, with no PHP CLI and no separate interpreter process involved.
I Added One Key to a PHP Array. It Cost 25 MB of Memory
In this article, I want to explain why this happens and what conclusions I've reached, because as I was told in the PHP community, only God knows where the memory goes .
What's New in Laravel 13: 5 Game-Changing Features You Should Actually Care About
When Taylor Otwell announced Laravel 13, the core message was clear: zero breaking changes to your business logic, a 10-minute upgrade path, and a focus on DX (Developer Experience).
|
Tutorials and Talks
Eradicating OFFSET: Cursor Pagination in Laravel
When you build an API endpoint to return a list of users or transactions, the default implementation is almost always Offset Pagination. In Laravel, you simply call User::paginate(15). Under the hood, this generates a SQL query like SELECT * FROM users LIMIT 15 OFFSET 150000;.
A layer-by-layer workflow to find whether slow WordPress TTFB comes from DNS, caching, PHP workers, database queries, plugins, or cron jobs
When a WordPress site feels slow, the first recommendation is often “install a caching plugin.” Sometimes that works. Sometimes it hides the symptom for logged-out visitors while the dashboard, checkout, search, or API remains slow.
Stop Writing Massive if-else Blocks: Master the Strategy Pattern in PHP & Laravel
You're a Laravel developer. You need to build a shipping cost calculator. You start simple. if ($country === 'USA') { return 10; } Then the business adds: "We need different pricing for express shipping." So you add elseif ($shipping === 'express').
Formatting Laravel Blade Templates: Why It Is Harder Than Formatting HTML
Laravel Blade templates can look deceptively simple. At first glance, a .blade.php file is mostly HTML. That can make formatting one seem like the same problem as formatting an ordinary HTML document.
Symfony lsp:check: The Route Typo PHPStan Can't See
Short version for the impatient: PHPStan can't see a typo in a route name, and neither can your tests unless you happen to hit that exact redirect. Symfony just shipped a CLI command that can. If you want to know why I care, and what I do about it in Laravel where no such command exists, read on.
LRU Cache in PHP 8.5 for Identity Map: 13+ Million Ops/Sec
An LRU cache in PHP is one of those problems everyone and their dog has already solved a dozen times over.
The Hidden Race Condition Inside firstOrCreate()
A user accidentally double clicks 'add to cart' before the button disables, firing 2 requests to your server. The requests arrive within milliseconds of each other, both calling Cart::firstOrCreate(['user_id' => $userId]) for the same customer.
Debugging PHP in Docker with an AI Agent and Xdebug
Tired of reading, and you have not started yet? Fair enough. Straight to setting up the MCP server in PhpStorm, or straight to installing xdbg.
PHP Variables and Data Types: A Beginner’s Guide
If you’re starting your journey into PHP development, one of the first concepts you need to understand is variables and data types. |
News and Announcements
CakePHP 5.4.2 RELEASED
Improvements: Http\Client\Response now initializes its reasonPhrase attribute. This fixes TypeError being raised on test doubles. Fatal error backtraces generated by PHP8.5+ are now preserved + a lot more!
The Evolution of WSL Support in JetBrains IDEs
JetBrains IDEs have worked with WSL for many years, and over time, several ways of using it have emerged across our products. Depending on the entry point, the IDE could rely on a different underlying architecture, leading to a different experience.
PHP 8.6.0 Beta 3 is available for testing
The PHP team is pleased to announce the third beta release of PHP 8.6.0, Beta 3. This continues the PHP 8.6 release cycle, the rough outline of which is specified in the PHP Wiki.
Symfony 8.1.7, Symfony 7.4.19 & Symfony 6.4.46 released
Read the Symfony upgrade guide to learn more about upgrading Symfony and use the SymfonyInsight upgrade reports to detect the code you will need to change in your project.
September 7–13, 2026 - A Week of Symfony #1028
This week, Symfony introduced standalone bundles for the framework features (MessengerBundle, HttpClientBundle, PropertyInfoBundle, etc.), added Docker-style console subcommands, and expanded OAuth2 and OpenID Connect support. In addition, we announced the workshop lineup and some of the talks for SymfonyCon Warsaw 2026.
Welcoming Daniel Scherzer to the Ecosystem Security Team
When the Ecosystem Security Team was established with funding from the Alpha-Omega “Security Engineer in Residence” grant, its mission was to improve the security of all aspects of the PHP ecosystem. Under the leadership of Volker Dusch, the team has accomplished many things.
This Week In PHP Internals | Sept 9, 2026
A PHP RFC went to a vote on Friday and its author pulled it back by Sunday night, over a no vote from the person who wrote the policy it broke — which leaves a question every regex you've ever written has an opinion on: when a pattern fails, is that your bug, or something you catch? Plus Gina P. Banyard asking the list to declare a whole class of engine crashes undefined behaviour, the PEAR maintainer nobody could reach for months finally answering, and last week's top story closing itself with a documentation PR instead of an RFC.
|
Podcasts and Vlogs
Laravel News: Query binding masks, testing best practices, and codebase audits
Jake and Michael discuss all the latest Laravel releases, tutorials, and happenings in the community.
The Stack Overflow: AI, JD, and other letters of the law
Ryan chats with Kevin Frazier, director of the AI Innovation and Law program at the University of Texas School of Law, about the legal and social impacts of data centers, the realities of workforce disruption, and regulating AI for child safety using existing consumer protection laws.
Software Engineering Radio: SE Radio 737: Owen McGirr on Software Accessibility
Owen McGirr, creator of SayIt!, Switchify, and an entrepreneur who builds inclusive technology, speaks with SE Radio host Gavin Henry about software accessibility. For this episode, Gavin emailed the questions to Owen, who prepared his answers and generated the audio programmatically using text-to-speech.
Shoptalk Show: Thomas Steiner on New Cross-Origin Storage APIs
We're joined by Thomas Steiner from Google to discuss his proposal for cross-origin storage, a new web API designed to bring back safe, cross-site resource sharing.
PHP Architect: PHP Foundation Community Hour Podcast 2026.09.10
The very first PHP Foundation Community Hour kicks off with autumn vibes, a blog post that started it all, and one big message: contributing to PHP is easier — and broader — than you think.
Syntax: OpenAI Releases GPT 6 Astra
Wes and CJ dig into OpenAI's GPT‑6 Astra; the massive jump in computer use, the wild Blender MCP 3D demos, and whether all the AGI talk actually holds up.
|
|
The Window of Opportunity: When Each WordPress Bootstrap Hook Is Open, and When It’s Already Closed
register_post_type() called in plugins_loaded — and the site crashes with a fatal error, because taxonomies aren't ready yet. Or add_theme_support( 'post-thumbnails' ) called in init — no error, thumbnails just quietly never show up, because WordPress has already passed the point where a theme declares feature support.
4 things WordPress.org made me fix before the review even started
I've been writing WooCommerce plugins for client sites for years. Last week I submitted one to the WordPress.org plugin directory for the first time. It's currently "Awaiting Review", so this isn't a post about what the reviewer said — it's about everything I had to change just to submit honestly.
The Password Reset Flow: Where Good PHP & LARAVEL Developers Ship Bad Security
A synthesis of secure token generation, constant-time comparison, rate limiting, and PHP’s type system applied to the one feature that, when broken, can hand over an account.
Sweating the Small Things: Laravel 13 Teams and the Tenant in the URL
The Laravel 13 starter kits can be generated with teams. It’s an option in the installer, and if you take it you get a different application: three extra tables, a team switcher in the sidebar, an invitation flow, and every scoped route prefixed with the team slug.
Docker Explained Simply: Why Developers Use Containers and How They Make Development Easier
Have you ever worked on a project that runs perfectly on your computer but refuses to work on someone else’s machine?
WordPress Is Not Dead. But Your PHP Theme Is Getting Worse.
AI Didn’t Kill WordPress — It Killed the Reason to Build the Old Way
|
Interesting Projects, Tools and Libraries
fidum/nova-package-bundler-command
Improves Laravel Nova initial load speeds by combining all third party package assets into a single file.
codewithkyrian/jinja-php
A minimalistic PHP implementation of the Jinja templating engine, specifically designed for parsing and rendering ML chat templates.
h4cc/wkhtmltopdf-i386
Convert html to pdf using webkit (qtwebkit). Static linked linux binary for i386 systems.
prgtw/big-number-serializer-bundle
Bundle for serializing BigNumber classes to/from string representation using JmsSerializer.
ahmedsaoud31/laravel-permission-to-vuejs
Laravel Permission Package To Use it in VueJs.
nekman/luhn-algorithm
Implementation of the Luhn algorithm in PHP. Used in validation of credit card numbers and some national identification numbers.
andreaselia/laravel-api-to-postman
Generate a Postman collection automatically from your Laravel API.
smknstd/fakerphp-picsum-images
Alternative image provider for fakerphp using picsum.photos.
setono/bot-detection-bundle
A Symfony bundle that allows you to test if a user agent is a bot.
kalessil/production-dependencies-guard
Prevents adding of development packages into require-section (should be require-dev).
|
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 [email protected] |
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?
|
|
|
|