Introduzione
Le versioni Minor di PHP apportano nuove funzionalità e miglioramenti che rafforzano il linguaggio, mantenendo la compatibilità con la versione principale. PHP 7.2, in particolare, continua il lavoro delle precedenti versioni della serie 7, con novità che aumentano la sicurezza e la flessibilità del linguaggio.
1. Libreria di Criptografia Libsodium
PHP 7.2 ha integrato Libsodium come libreria di crittografia standard. Libsodium è moderna e sicura, supportando numerosi algoritmi per cifratura, decrittazione, hashing e autenticazione.
//Encrypt a message with a symmetric (shared) key
$key = sodium_crypto_secretbox_keygen();
// Do not reuse $nonce with the same key
$nonce = random_bytes(SODIUM_CRYPTO_SECRETBOX_NONCEBYTES);
$encrypted = sodium_crypto_secretbox('messaggio', $nonce, $key);
2. Dichiarazione degli Oggetti in Variabili
PHP 7.2 consente di dichiarare tipi oggetto nelle variabili dei parametri delle funzioni.
function processObject(object $obj) {
// Esegue operazioni sull'oggetto
}
3. Funzione count() Migliorata
In PHP 7.2, la funzione count() ora genera un messaggio di errore quando viene applicata su argomenti non conteggiabili, come null. Questo miglioramento aiuta a prevenire errori di runtime.
$count = count(null); // Uncaught TypeError: count(): Argument #1 ($value) must be of type Countable|array, null given
5. Migliorate le funzioni per le Password
PHP 7.2 ha reso disponibile l’algoritmo Argon2 per l’hashing delle password es nella funzione password_hash.
$passwordHash = password_hash('password123', PASSWORD_ARGON2I);
Conclusione
PHP 7.2 ha introdotto miglioramenti sulla sicurezza, con l’integrazione di Libsodium, e supporto per l’algoritmo Argon2.
Riferimenti Utili
- Sito Ufficiale di PHP: per la documentazione e il changelog completo.
- Note di Rilascio di PHP 7.2: dettagli tecnici e nuove funzionalità.
- Rilascio di PHP 7.2: descrione nuove funzionalità.
- PHP RFCs: proposte e discussioni ufficiali.
- PHP Weekly: per novità e aggiornamenti sul linguaggio PHP.
- Repository PHP su GitHub: il codice sorgente e contributi di sviluppo.