
Noua versiune conține numeroase caracteristici noi, cum ar fi hook-uri pentru proprietăți, vizibilitate asimetrică a proprietăților, actualizarea API-ului DOM, performanță îmbunătățită, corectarea erorilor și multe altele.
Principalele modificări
- Hook-uri pentru proprietăți oferă suport pentru proprietăți calculabile, care pot fi înțelese de IDE-uri și instrumente de analiză statică, fără a fi necesar să scrieți comentarii DocBlock care s-ar putea să nu fie în concordanță. În plus, acestea permit preprocesarea sau postprocesarea fiabilă a valorilor, fără a verifica dacă clasa are un getter sau setter corespunzător.
- Vizibilitate asimetrică acum poate controla înregistrarea proprietăților independent de vizibilitatea de citire a proprietății, ceea ce reduce necesitatea utilizării metodelor getter de tip șablon pentru a dezvălui valoarea proprietății fără a permite modificarea acesteia din exteriorul clasei.
- Nou atribut #[Deprecated] extinde mecanismul existent de declarare a entităților ca fiind uzate pentru funcțiile personalizate, metodele și constantele claselor.
- Nou API DOM, care suportă analiza documentelor HTML5 conform standardelor, corectează câteva erori vechi în comportamentul DOM și adaugă câteva funcții care fac lucrul cu documentele mai convenabil. API-ul DOM este disponibil în spațiul de nume Dom. Documentele care folosesc noul API DOM pot fi create cu ajutorul claselor DomHTMLDocument și DomXMLDocument.
- Nou obiect BcMathNumber permite utilizarea unui stil orientat pe obiect și a operatorilor matematici standard atunci când lucrați cu numere de precizie arbitrară. Aceste obiecte sunt imutabile și implementează interfața Stringable, astfel încât pot fi utilizate în contexte de tip text, de exemplu, echo $num.
- Funcții adăugate array_find(), array_find_key(), array_any() și array_all().
- Clase copil adăugate PdoDblib, PdoFirebird, PdoMySql, PdoOdbc, PdoPgsql, PdoSqlite drivere, care moștenesc PDO.
- Acum se poate accesa proprietățile și metodele unui obiect tocmai inițializat, fără a înfășura expresia new în paranteze. Exemplu: new MyClass()->method() fără paranteze.
- Clase, interfețe și funcții noi și multe altele…
Sursa: linux.org.ru
