Ogni versione di PHP è più veloce della precedente e riceve correzioni di sicurezza per circa tre anni. L'unico motivo per non usare una versione ancora supportata è che qualcosa da cui dipendi non ci funziona — e quella è una domanda con una risposta, non una supposizione.

La finestra di supporto è il pavimento

  • Supporto attivo: correzioni di bug e di sicurezza, circa due anni.
  • Supporto di sicurezza: solo sicurezza, un anno in più.
  • Dopo di che: più nulla, mai. Una falla nota resta aperta sul tuo server per sempre.
Far girare una versione non più supportata non è una scelta di manutenzione, è una porta lasciata aperta. Ed è anche una delle prime cose che una scansione automatica va a cercare.

Verifica prima di cambiare

composer why-not php 8.3
vendor/bin/rector process --dry-run
phpcs --standard=PHPCompatibility --runtime-set testVersion 8.3 app/

La prima riga nomina i pacchetti che ti trattengono. Spesso è una sola libreria abbandonata, e sostituirla è un lavoro più piccolo che restare indietro per sempre.

Se c'è di mezzo un CMS

Controlla la pagina di compatibilità del nucleo e di ogni plugin. Un plugin fermo da tre anni è il motivo per cui sei bloccato, ed è già di per sé un problema di sicurezza.

Cambiare in sicurezza

  1. Fai un backup — vedi Fai un backup prima di ogni aggiornamento.
  2. Cambia prima l'ambiente di prova — e mettine alla prova il pagamento, i caricamenti, la posta e i cron.
  3. Passa la produzione, lasciando installata la versione vecchia — così tornare indietro è una riga sola.
  4. Guarda il log degli errori per un giorno — gli avvisi di deprecazione arrivano col traffico, non con le prove.

E la versione che usano i tuoi cron

php -v                                    # the CLI
curl -sSI https://yourdomain.com | grep -i x-powered-by
La riga di comando e il web sono due impostazioni distinte. Un lavoro notturno su una versione vecchia mentre il sito gira su una nuova produce guasti che capitano soltanto di notte — vedi Tenere PHP aggiornato con le patch.