Facebook Shop: apri il tuo negozio su Facebook
21 Maggio 2020
Visual identity Vinavl
Nuova visual identity per Vinavil
17 Febbraio 2021

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.

Le novità di PHP 8

Esecuzione del codice più veloce

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:

  • L’esecuzione di PHP 8 con JIT potrebbe rendere più difficile la risoluzione degli errori di codice perché potrebbe essere più difficile individuare quale parte del codice è effettivamente la colpevole.
  • Se hai un sito WordPress, potresti non essere notare miglioramenti significativi delle prestazioni utilizzando JIT. Gli sviluppatori di WordPress stanno ancora lavorando per rendere WP compatibile con PHP 8 e stanno ora facendo dei test, il che significa che non sarai in grado di testare PHP 8 sul tuo sito WP da subito. Inoltre, a causa del modo in cui WordPress interagisce con MySQL, gran parte del tempo di attesa non deriva dalla compilazione PHP, ma dal tempo di risposta di MySQL, che non può essere risolto con l’aiuto del compilatore JIT.

Codice con qualità superiore

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.

Codice più pulito e più breve

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.

Il trend “Type”

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