Siamo lieti di annunciare che è stata rilasciata la release candidate di PHP 8 su tutti i nostri server ospitati da Siteground, tra le prime aziende al mondo a fornire la nuova versione PHP sulla propria piattaforma di hosting. PHP 8 aiuterà gli sviluppatori a scrivere codice più pulito e con una migliore qualità, in modo che venga eseguito più velocemente.
L’ultima versione di PHP porta molte novità, ma quella che riteniamo più importante è JIT (compilatore just in time). È la prima volta che una versione PHP ha un compilatore JIT capace di memorizzare nella cache una versione del codice già interpretato e generare un linguaggio macchina come output (il linguaggio macchina è attivo solo con 0 e 1). Il compilatore just in time promette miglioramenti della velocità per task e algoritmi complessi e apre nuove opportunità per il linguaggio PHP, ampliando la sua portata e le sue applicazioni.
In che modo JIT si relaziona con Opcache, visto che questo è alla base dei miglioramenti delle prestazioni di molti siti?
Il compito principale di Opcache è tagliare i processi di tokenizzazione, analisi e compilazione di Opcode, che poi vengono elaborati dal motore Zend. Il ruolo di JIT è quello di risparmiare sull’esecuzione degli Opcode, quindi unisce le forze con quest’ultimo e interviene per risparmiare risorse dove Opcache non può.
Vale la pena menzionare anche alcuni aspetti negativi notati dai tecnici Siteground:
Una delle principali differenze è che molti degli avvisi e delle notifiche che non erano rilevabili ora sono eccezioni o errori che possono essere rilevati e registrati. È possibile che a causa di questo cambiamento, molti problemi che erano rimasti nascosti con le precedenti versioni di PHP, vengano a galla solo ora. Questo è un grande miglioramento, poiché consentirà agli sviluppatori di individuare più facilmente potenziali problemi. Tuttavia, tieni presente che potrebbe essere una buona idea impostare display_errors=off se decidi di utilizzare PHP 8 su un sito live, in modo da non mostrare quegli errori ai visitatori del tuo sito.
Alcuni dei nuovi elementi, come l’operatore nullsafe, migliorano notevolmente la leggibilità del codice rendendolo più breve e ordinato. Invece di annidare diversi “if”, puoi utilizzare l’operatore “null” per scriverli tutti in una sola riga di codice.
Da diverse versioni PHP sta cercando di definire gli “arguments” che ogni metodo può adottare e diventare un linguaggio più standardizzato. In questa ultima versione, è presente una funzionalità chiamata “union types” che consente di definire 2 tipi di valore per ciascuna funzione, che è una naturale continuazione di quel trend. Come mostra l’esempio seguente, la funzione può restituire un numero intero o un float:
public function getNumber(): int|float {
return $this->number;
}
L’elenco delle nuove funzionalità è ancora lungo e suggeriamo questi articoli come punto di riferimento per gli sviluppatori PHP:
https://stitcher.io/blog/new-in-php-8
https://stitcher.io/blog/php-jit
https://wiki.php.net/rfc/nullsafe_operator