Guide

PHP 8.6: cosa cambia e come testarlo prima del rilascio del 19 novembre 2026

PHP 8.6 è in Release Candidate, GA il 19 novembre 2026. Novità, deprecazioni da controllare e come installare l'RC su Ubuntu senza toccare la produzione.

Redazione UptimeMag · 12 ottobre 2026 · 2 minuti di lettura

PHP 8.6: cosa cambia e come testarlo prima del rilascio del 19 novembre 2026

PHP 8.6 è arrivato alla terza Release Candidate. La RC3 è datata 8 ottobre 2026, come riportato dalla pagina ufficiale delle pre-release di php.net. La data di General Availability resta fissata al 19 novembre 2026, secondo il calendario pubblicato da php.watch. Per chi gestisce server di produzione è il momento di provare l'aggiornamento su un ambiente separato, non di aspettare il giorno del rilascio.

Le novità principali

Tra le funzionalità confermate per PHP 8.6, secondo il riepilogo di stitcher.io:

  • Partial function application (PFA): si può creare una closure con alcuni parametri già compilati usando ? come segnaposto, utile insieme al pipe operator introdotto in 8.5.
  • Readonly property defaults: le proprietà readonly possono finalmente avere un valore di default, cosa che prima non era permessa.
  • Time\Duration: nuova classe per rappresentare durate con precisione al nanosecondo, con metodi aritmetici e di confronto.
  • clamp(): nuova funzione nativa che forza un valore dentro un intervallo minimo/massimo, su numeri, stringhe e oggetti DateTime.
  • Polling API (namespace Io\Poll): interfaccia unificata per epoll (Linux), kqueue (BSD/macOS), event ports (Solaris) e WSAPoll (Windows), pensata soprattutto per chi scrive librerie async o lavora su PHP-FPM.
  • DocComments sui parametri: ReflectionParameter::getDocComment() legge commenti scritti direttamente a fianco del singolo parametro.

Cosa controllare prima di migrare

Alcune deprecazioni toccano codice che gira in produzione da anni. Dal changelog riportato da stitcher.io:

  • Return da un blocco finally: è deprecato, perché da sempre fonte di bug poco chiari.
  • define() con l'argomento case_insensitive: il supporto alle costanti case-insensitive era già rimosso di fatto, ora anche l'opzione viene deprecata.
  • spl_object_hash(): da sostituire con spl_object_id(), come segnalato già nelle note di upgrade della Beta 1.
  • Passaggio di oggetti dove sono attese array (es. array_walk()): comportamento deprecato perché può causare corruzioni di memoria.
  • Default di sessione: session.use_strict_mode passa da 0 a 1, session.cookie_httponly da 0 a 1, session.cookie_samesite da stringa vuota a Lax. Chi gestisce login e flussi cross-site deve verificare che l'applicazione non dipenda dai vecchi default.

Attenzione anche a mb_ereg(), mb_ereg_replace() e mb_split(): le funzioni mbregex basate su Oniguruma sono deprecate, con rimozione prevista in PHP 9.0.

Come installarlo su Ubuntu senza toccare la produzione

La build RC va compilata da sorgente in una directory separata, non installata come PHP di sistema. I pacchetti ufficiali sono su php.net/pre-release-builds.php:

wget https://www.php.net/distributions/php-8.6.0RC3.tar.gz
tar xzf php-8.6.0RC3.tar.gz
cd php-8.6.0RC3
./configure --prefix=/opt/php86rc
make -j$(nproc)
sudo make install

Per verificare che il binario di test sia quello giusto, senza toccare il php di sistema:

/opt/php86rc/bin/php -v

Il comando restituisce la versione attiva in quel percorso: se compare PHP 8.6.0RC3 il binario è isolato e il PHP di produzione resta quello già configurato su /usr/bin/php. Per il changelog completo dei cambiamenti tra una RC e l'altra, la fonte di riferimento resta la pagina ufficiale delle release, aggiornata a ogni nuova QA release.

Testo redatto con il supporto dell'intelligenza artificiale e verificato dalla redazione (AI Act, art. 50).