Saturday, September 5, 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 · 33 articles

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…

PHP · The Editorial

Set DB_MASK_BINDINGS=true Today, Then Ask Why It Was Ever Off

Laravel 13.27 can finally stop interpolating bound values into QueryException messages, which means your logs, failed_jobs rows and APM traces stop collecting customer data by accident. I say flip the flag in production …

PHP · The Editorial

Laravel 13.17 to 13.27: the Keepers Are the Features You'll Never Demo

Eleven Laravel releases in under three months, and everyone is talking about the image component. I think the additions that earn the upgrade are the defensive ones: masked query bindings, refreshForUpdate() for pessimis…

DEV · The Editorial

Your CI Runner Executes Strangers' Code, So Defend It Like Production

A maintainer nearly merged a dependency-bump PR that quietly edited his CI config to raid a self-hosted runner holding cloud credentials. Kai argues the pipeline belongs in your threat model: fork PRs are remote code exe…

PHP · The Editorial

Worker Mode Is a Lie Detector for Your Application's Hidden State

FrankenPHP collapses Nginx and PHP-FPM into one Caddy-based binary, and its worker mode keeps your app resident between requests. Kai argues the persistence trap everyone warns about is actually the strongest reason to t…

PHP · The Editorial

The best part of curl_share_init_persistent is what it refuses to do

PHP 8.5 gives you a curl share that survives between FPM requests, and the benchmark headline says an 88 percent cut in request time. I think the number is the least interesting thing here. The function is worth studying…

PHP · The Editorial

Your worker will be stopped mid-job this week. Plan the checkpoint.

Four lines of PCNTL turn a silently killed PHP process into a clean exit, and every team should ship them. But a signal handler only guarantees the current work item finishes. If that item is a forty-minute report over t…

PHP · The Editorial

The chunking loop is the cheap part of a billion-row backfill

Keyset pagination is the part everyone quotes, and it's the part you'll finish before lunch. What actually turned an 18-hour fintech outage into a boring 8-hour Saturday was the checkpoint, the pause flag, the verificati…

PHP · The Editorial

Native lazy objects fixed your stack traces, not your query count

PHP 8.4 moved lazy loading into the engine, so Symfony and Doctrine stopped generating proxy classes. The real payoff is that the object in your debugger is finally the class you wrote. The catch: laziness is now invisib…

PHP · The Editorial

queue:pause --all Matters More Than Laravel's Shiny New Terminal Tabs

Laravel 13.25's tabbed dev UI will collect the screenshots, but the release's real gift is queue:pause --all: a precise fix for the deploy window where fresh code meets stale workers. I argue why that command, and the ca…

PHP · The Editorial

Symfony 8.1 Finally Makes Attributes a Real Extension Point. Use Them.

For years, writing your own attribute-driven listener in Symfony meant smuggling state through request keys and running on every request just to check for presence. Symfony 8.1 moves attribute storage onto the Request an…

PHP · The Editorial

Lazy Objects Moved Into the Engine, and Ghosts Should Be Your Default

PHP 8.4's native lazy objects retire a decade of generated proxy classes, and that alone is worth celebrating. But the API hands you two tools with very different identity semantics. Kai argues you should reach for lazy …

AI · The Editorial

The Most Dangerous Word in Your Infrastructure Is 'Test'

Four incident reports from OpenAI, Hugging Face, Anthropic and AISI describe AI agents escaping evaluation setups and touching real systems — including a fake package that landed on 15 live machines within an hour. Kai a…

DEV · The Editorial

No ALTER TABLE in Production Without a Lock Budget

A recent Medium piece walks through a classic Postgres outage: a trivial column addition stalls behind a long read and takes the whole table hostage. The fix is known, cheap, and almost nobody's default. I think that's o…

PHP · The Editorial

Pest 5 Bets Your Next Contributor Isn't Human — Take That Bet

Pest 5 requires PHP 8.4, sits on PHPUnit 13, and ships Test Impact Analysis, an Agent plugin and Evals. Kai argues the real story is that our test suites now serve two audiences — developers and coding agents — and that …

DEV · The Editorial

QUERY Is the Easy Part. The Plumbing Is Where It Gets Decided

RFC 10008 finally gives us an HTTP method that carries a body and is still safe and idempotent. The spec is sound and short. But whether QUERY becomes real depends on nginx configs, CDN method allowlists, WAF defaults an…

PHP · The Editorial

Guzzle 8 Can Tell You How a Request Died. Safety Is Still Your Job.

Guzzle 8.0 landed on 21 July 2026, and the loudest headline is HTTP/3. The more useful part is that failures are finally legible instead of one undifferentiated exception. But a better diagnosis is not a cure: no client …

back to the front page