
La nuova versione include molte nuove funzionalità, come i ganci delle proprietà, l'ambito asimmetrico delle proprietà, l'aggiornamento dell'API DOM, prestazioni migliorate, correzione di bug e molto altro.
Modifiche principali
- Ganci delle proprietà forniscono supporto per proprietà calcolate che possono essere comprese da IDE e strumenti di analisi statica, senza la necessità di scrivere commenti DocBlock che potrebbero non corrispondere. Inoltre, consentono di eseguire un'elaborazione affidabile dei valori anticipata o successiva, senza la necessità di verificare se nella classe esista il corrispondente getter o setter.
- Ambito asimmetrico la registrazione della proprietà ora può essere controllata indipendentemente dall'ambito di lettura della proprietà, riducendo la necessità di utilizzare metodi getter generici per rivelare il valore della proprietà senza possibilità di modificarlo dall'esterno della classe.
- Il nuovo attributo #[Deprecated] espande il meccanismo esistente per dichiarare entità obsolescenti per funzioni, metodi e costanti di classe.
- La nuova API DOM, che supporta l'analisi di documenti HTML5 secondo gli standard, corregge diversi bug di lunga data nel comportamento del DOM e aggiunge alcune funzionalità che rendono più comodo lavorare con i documenti. L'API DOM è disponibile nello spazio dei nomi Dom. I documenti che utilizzano la nuova API DOM possono essere creati con le classi DomHTMLDocument e DomXMLDocument.
- Il nuovo oggetto BcMathNumber permette di utilizzare uno stile orientato agli oggetti e operatori matematici standard per lavorare con numeri a precisione arbitraria. Questi oggetti sono immutabili e implementano l'interfaccia Stringable, quindi possono essere utilizzati in contesti stringa, ad esempio, echo $num.
- Sono state aggiunte le funzioni array_find(), array_find_key(), array_any() e array_all().
- Sono state aggiunte classi figlie PdoDblib, PdoFirebird, PdoMySql, PdoOdbc, PdoPgsql, PdoSqlite che ereditano i driver PDO.
- Ora si può accedere alle proprietà e ai metodi di un oggetto appena inizializzato senza racchiudere l'espressione new tra parentesi. Esempio: new MyClass()->method() senza parentesi.
- Nuove classi, interfacce e funzioni e molto altro...
Fonte: linux.org.ru
