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
- Fai un backup — vedi Fai un backup prima di ogni aggiornamento.
- Cambia prima l'ambiente di prova — e mettine alla prova il pagamento, i caricamenti, la posta e i cron.
- Passa la produzione, lasciando installata la versione vecchia — così tornare indietro è una riga sola.
- 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.
