PHP 8.4: novità, cambiamenti e aggiornamento sicuro
PHP 8.4 è una versione importante di PHP con funzionalità per codice più chiaro, controllo degli accessi più forte e API moderne. Un aggiornamento non deve mai essere considerato sicuro senza test di compatibilità.
Nuove funzionalità importanti
Property hooks
Permettono di definire logica get e set direttamente su una proprietà, riducendo getter e setter ripetitivi.
class User {
public string $name {
set => trim($value);
}
}
Visibilità asimmetrica
Una proprietà può avere visibilità diversa in lettura e scrittura.
class Order {
public private(set) string $status = 'pending';
}
Attributo #[Deprecated]
Funzioni, metodi e costanti possono essere contrassegnati come deprecated in modo standard, consentendo a IDE e strumenti di analisi di avvisare.
Nuove funzioni array
array_find(), array_find_key(), array_any() e array_all() semplificano ricerche e controlli comuni.
Lazy objects e miglioramenti API
PHP 8.4 introduce un’API ufficiale per lazy objects, utile soprattutto a framework e dependency injection. Include miglioramenti DOM con HTML5, API object per BCMath, sottoclassi PDO specifiche dei driver e sintassi semplificata dopo new.
Cambiamenti per gli sviluppatori
Le applicazioni esistenti non devono adottare subito la nuova sintassi. Prima di usarla, verifica che produzione esegua PHP 8.4 e se il progetto deve supportare versioni precedenti.
Deprecations e compatibilità
I parametri implicitamente nullable devono essere dichiarati con ?Type o Type|null. Anche E_STRICT, mysqli_ping() e trigger_error(..., E_USER_ERROR) sono deprecated. Un avviso non è sempre subito fatale, ma indica codice da aggiornare.
Prima dell’aggiornamento
- Registra versione PHP, estensioni, impostazioni INI e job pianificati.
- Crea un backup completo e verifica il restore.
- Prepara staging simile a produzione.
- Aggiorna prima applicazione, WordPress, WooCommerce, plugin e temi.
- Controlla requisiti vendor e Composer.
- Documenta versione precedente e rollback.
WordPress e WooCommerce
La compatibilità del core WordPress non garantisce quella di ogni plugin o tema. Per WooCommerce testa catalogo, carrello, checkout, callback di pagamento, email, Scheduled Actions e integrazioni.
Test in staging
- Registra una baseline.
- Cambia PHP solo in staging.
- Testa frontend, admin, login, moduli, uploads, cron e API.
- Controlla fatal errors, warnings e deprecations nei log.
- Testa flussi critici, prestazioni e TTFB.
- Passa a produzione solo dopo la validazione e in una finestra controllata.
Rollback
Se compaiono errori, ripristina la versione PHP precedente e il backup verificato se codice o dati sono cambiati. Svuota le cache necessarie e ricontrolla frontend, admin, checkout e log.