Articles › php-8.6
TAG ARCHIVE

Everything on php-8.6.

13 articles tagged php-8.6, sorted newest first.

php

PHP 8.6's Io\Poll: stream_select() Finally Gets a Replacement

PHP has shipped exactly one I/O multiplexing primitive for its entire life, and it was built on a syscall from 1983. PHP 8.6 finally adds a second one.

8 min read →
php

PHP 8.6 Changes What trim() Strips, and Your Validation Rules Might Notice

PHP 8.6 adds form feed to the default character list of trim() — the first change to that list in the language's history. Laravel's middleware already handled it. The validator did not.

8 min read →
php

ReflectionParameter::getDocComment(): PHP 8.6 Finally Reads Parameter Docs

PHP 8.6 lets you hang a doc comment on a single parameter and read it back with reflection. That kills the description you've been writing twice — once for humans, once for the machine.

9 min read →
php

Stop String-Concatenating URLs: PHP 8.6's UriBuilder

Every Laravel app has a method that bolts a path and a query onto a URL it did not generate, and it is always subtly wrong. PHP 8.6 finally gives the language a typed way to do it.

10 min read →
php

Enums That Explain Themselves: __debugInfo() in PHP 8.6

Dumping a status enum has always shown you name and value and nothing you actually wanted. PHP 8.6 lets enums declare __debugInfo(), and one method covers var_dump, dd() and Ray.

7 min read →
php

Syntax Error, Line 1: PHP 8.6 Finally Tells You Where Your JSON Broke

PHP 8.6 adds the line and column of the failure to every JSON error message. Here is how to wire that into a Laravel app so bad webhooks diagnose themselves.

8 min read →
php

PHP 8.6 Changes Your Session Defaults: What Breaks in a Laravel App

PHP 8.6 turns on session strict mode, HttpOnly and SameSite=Lax by default. Most Laravel apps shrug. Four specific integrations do not.

10 min read →
php

PHP 8.6's SortDirection Enum: Typed Sorting in Laravel Queries and Collections

PHP 8.6 adds a global SortDirection enum, and Laravel 13 already accepts it in orderBy() and sortBy(). Here is what it does, what it deliberately does not do, and the one validation gotcha that will bite you.

9 min read →
php

PHP 8.6's clamp(): Delete Your min(max()) Sandwiches

Every Laravel codebase has a min(max($perPage, 1), 100) somewhere, and at least one of them has the bounds backwards. PHP 8.6 gives you a function that can't be written wrong.

7 min read →
php

PHP 8.6 Readonly Property Defaults: Cleaner DTOs and Interface Properties in Laravel

PHP 8.6 lifts the four-year ban on default values for readonly properties. Here's what that changes for DTOs, interface properties and Laravel action classes.

6 min read →
php

Upgrading a Laravel App to PHP 8.6: Deprecations, Session Defaults and a CI Checklist

PHP 8.6 lands on 19 November 2026. Here's the ordered checklist I run on Laravel apps — CI first, deprecations second, production runtime last.

9 min read →
php

PHP 8.6's Time\Duration: No More Guessing Whether That Timeout Is Seconds or Milliseconds

PHP 8.6 ships Time\Duration, a nanosecond-precision value object for stopwatch time. Here's the whole API, where it beats DateInterval, and how to bolt it onto a Laravel app whose framework still wants ints.

8 min read →
php

PHP 8.6 Partial Function Application: Delete Half the Closures in Your Laravel App

PHP 8.6 lets you write str_replace(' ', '-', ?) and get a closure back. Here's what the ? and ... placeholders actually do, rewritten against real Laravel code, and where they bite.

9 min read →