Articole
development

Ce este nou în PHP 8.3?

PHP evoluează: versiunea 8.3 aduce validare JSON eficientă, o gestionare mai coerentă a erorilor și acces dinamic la constantele de clasă. O privire de ansamblu asupra celor mai importante noutăți.

Ce este nou în PHP 8.3?
Noutăți în PHP 8.3

Validarea JSON regândită: json_validate

Lucrez cu PHP de foarte mult timp și am scris și rescris în el mii de linii de cod. Acest limbaj consacrat se pregătește acum pentru următoarea versiune: PHP 8.3 urmează să fie lansat oficial la sfârșitul lunii. În acest articol trecem prin cele mai importante schimbări aduse de noua versiune.

Validarea JSON regândită: json_validate

PHP 8.3 json_validate

Eterna întrebare: este JSON valid sau nu? Până acum, soluția era parsarea întregului șir cu json_decode, urmată de verificarea rezultatului. Noua versiune aduce o schimbare importantă: funcția json_validate. Aceasta oferă același rezultat sigur, dar consumă semnificativ mai puține resurse.

Gestionare unitară a erorilor în unserialize

PHP 8.3 excepție unserialize

Funcția unserialize() era cunoscută pentru modul inconsecvent în care raporta erorile – uneori ca E_NOTICE, alteori ca E_WARNING. Versiunea 8.3 schimbă fundamental acest comportament: de acum se aruncă de fiecare dată o excepție, așa că tratarea separată a particularităților lui E_NOTICE nu mai este necesară.

Noul atribut #[Override]

PHP 8.3 atributul Override

O adăugare valoroasă este atributul #[Override]. Cu el se marchează metodele care ar trebui să suprascrie o metodă din clasa părinte. Dacă metoda din clasa părinte este redenumită, iar metoda marcată cu #[Override] nu mai suprascrie nimic, PHP generează acum o eroare.

Acces dinamic la constantele de clasă

Constante în PHP 8.2

Înainte de versiunea 8.3, constantele de clasă puteau fi accesate doar static sau prin Reflection. Începând cu 8.3, accesul poate fi și dinamic: numele constantei poate fi furnizat printr-o variabilă.

Constante în PHP 8.3

Modificarea proprietăților readonly în __clone()

Într-o versiune anterioară, PHP a introdus proprietățile readonly, care se setează la instanțierea clasei. La clonare însă, aceste proprietăți aveau limitări: era posibilă doar o copie superficială.

PHP 8.3: modificarea proprietăților readonly la clonare

Versiunea 8.3 elimină aceste restricții: în cadrul metodei __clone(), proprietățile readonly pot fi acum reinițializate, ceea ce face posibilă o clonare reală. Pe lângă aceste schimbări esențiale, mai există și alte noutăți – de exemplu erori specifice la inițializarea obiectelor DateInterval, precum DateMalformedIntervalStringException, îmbunătățiri ale funcției mb_str_pad și creșteri notabile de performanță pentru array_sum() și array_product().

PHP 8.3 a fost lansat pe 23 noiembrie 2023. Înainte de lansare, versiunea a fost testată în trei versiuni alpha, trei beta și șase release candidate.

O imagine completă a tuturor schimbărilor este disponibilă pe php.net