Friday, October 16, 2026
EN

Subscribe in your feed reader — pick your desks:

https://php-net.pro/en/news/feed.atom

php-net.pro · the dev news broadsheet

The Dev Dispatch

The Dev Dispatch · Editorial

The Editorial

long-form pieces by Kai — opinion, pushback welcome · 62 articles

DEV · The Editorial

Your editor is a dependency, so give it a lockfile and a reviewer

PHP teams argue over every line in composer.lock, then let their editors update a dozen extensions in the background without anyone looking. This year showed that a trusted extension release can be enough to compromise a…

PHP · The Editorial

PHP 8.6 Gets Louder, and Every New Exception Is a Free Bug Report

PHP 8.6 keeps choosing a thrown error over a polite guess, and I think that is the best thing in the release. There is one exception: partial function application captures its arguments when it is created, and nothing wa…

PHP · The Editorial

PHP 8.5's best feature is the URL parser, not the pipe operator

Almost a year after PHP 8.5 shipped, everyone still talks about |>. I think the feature that will save you the most grief is the new URI extension, which finally parses URLs to RFC 3986 and WHATWG. Pipes make code pretti…

DEV · The Editorial

TypeScript 7's real lesson for PHP tooling is the missing API, not Go

Everyone is quoting the VS Code build dropping from 77.8 seconds to 7.5. I care more about what shipped without it: a stable programmatic API. For PHP, whose static analysis lives on its plugin ecosystems, that gap matte…

PHP · The Editorial

Symfony 8.2 lets you drop framework:, so drop it in the upgrade PR

Symfony 8.2 hands configuration back to the components: 29 new bundles, each with its own config root, and the old framework: keys keep working through aliases. That last part is generous, and it's exactly why I think yo…

PHP · The Editorial

Symfony 8.2's outbox should be your default, not your upgrade project

Symfony 8.2 brings plenty of new features, but the one I care most about is a single transport option: the transactional outbox. Once preventing dual writes takes one line of config, sending to the broker directly from i…

PHP · The Editorial

Give Mago your pre-commit hook, but don't hand it PHPStan's job yet

Mago, the Rust toolchain for PHP, formats, lints, analyzes and guards architecture from one binary, and its speed is real. Kai argues the smart move is to let it take over the fast, cheap checks right now, keep your plug…

DEV · The Editorial

React 19.3 finally treats UI updates like PHP-FPM treats requests

React 19.3 lets unrelated transitions render on their own instead of being tied together. PHP developers will recognise the idea, because it is how FPM workers have kept one slow request from stalling the rest for years.…

PHP · The Editorial

PHP 8.6 partials freeze their arguments early, so review them that way

Partial Function Application lands in PHP 8.6 and finally makes the pipe operator pleasant to use. It is also easy to misread. A partial evaluates its fixed arguments once, when you create it, and it drops most attribute…

DEV · The Editorial

Angular v22 Is Stable, So Your PHP Backend Has to Own Validation

Angular v22 made Signal Forms and the resource-based async signals stable. For PHP teams that run an Angular frontend on top of Laravel or Symfony, that is a cue to stop splitting validation rules and server-state logic …

PHP · The Editorial

Laravel's Approvable tools work best when you rarely need to approve

Laravel AI SDK 1.0 lets an agent pause a tool call until a human decides what happens. That's useful, and it's also a dialog box. Anyone who has watched people click through dialog boxes knows how that ends. Kai argues t…

PHP · The Editorial

PHP 8.6's Real Win Is a Standard Library That Finally Has Opinions

Partial application will get the applause, but I think the substance of PHP 8.6 sits elsewhere: Time\Duration, clamp(), SortDirection, JSON errors with coordinates and a native polling layer. Core is starting to ship sha…

PHP · The Editorial

A WordPress Bug Needed Accomplices, and Your Stack Volunteered

WordPress 7.1.2 patches CVE-2026-87902, a critical template-inclusion flaw around get_page_template(). The exploit only fires when theme layout, pearcmd.php and register_argc_argv line up, and that is exactly the point: …

PHP · The Editorial

Laravel 13: Put Infra in Providers, Domain Shape in Attributes

Laravel 13 quietly ships two opposite answers to one question: where does configuration belong? You can pin queue settings to a job class with a PHP attribute, or route jobs centrally with Queue::route(). Kai argues the …

PHP · The Editorial

Treat TypePHP Like an Extension Toolchain, Not a Faster PHP

The Swoole team open-sourced TypePHP, an AOT compiler that turns a typed subset of PHP into native binaries and claims up to 150x speedups. Kai argues the headline number is the least interesting part: the real prize is …

PHP · The Editorial

Let Deprecations Fail Your Build, and Let PHP 8.6 Be the Excuse

PHP 8.6 arrives on 19 November 2026 as a light release: partial function application, a Duration class, and about thirty deprecations. My argument: the version bump is trivial, so spend the saved time making deprecation …

PHP · The Editorial

A sanitizer that hands your bytes back is not a sanitizer

GiveWP's first attempt at fixing CVE-2026-82222 detected the malicious object and then returned the original payload anyway. That single line is the whole lesson of this CVSS 10.0 bug: allowed_classes => false does not d…

DEV · The Editorial

When an AI Company Buys the Runtime, Governance Stops Being Boring

Anthropic bought Bun because Claude Code ships on it, and the deal will probably make Bun better. Kai argues the real lesson sits elsewhere: single-vendor runtime ownership is becoming normal, and the PHP world's messy, …

DEV · The Editorial

Headless Chromium Is a Production Dependency. Patch It Like One

CVE-2026-85046, a V8 type confusion bug exploited in the wild, is being filed under 'browser news'. Wrong drawer. If your PHP app renders PDFs with Browsershot, runs Dusk or Panther in CI, or scrapes with Puppeteer, you …

PHP · The Editorial

Your Security Voters Can Finally Testify, So Stop Logging by Hand

Symfony 7.3 gave voters a Vote object and addReason(); 7.4 and 8.0 add extraData plus two Twig functions that expose the whole access decision. The boolean era of authorization is quietly over, and the per-voter logger c…

PHP · The Editorial

Let PHP 8.5's Pipe Operator Annoy You Into Writing Better Functions

PHP 8.5's |> is a one-rule feature: left value in, first argument out. The loudest complaint is the parentheses you need around every multi-argument arrow function. I think that friction is the operator's best quality, b…

← back to the front page