ĂshtĂ« prezantuar publikimi i parĂ« alfa i degĂ«s sĂ« re tĂ« gjuhĂ«s sĂ« programimit PHP 8.4. Publikimi Ă«shtĂ« planifikuar pĂ«r mĂ« 21 nĂ«ntor. Tiparet kryesore, tĂ« cilat tashmĂ« janĂ« nĂ« dispozicion pĂ«r testim ose janĂ« tĂ« planifikuara pĂ«r t'u realizuar nĂ« PHP 8.4:
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r ngjitjen e trajtuesve tĂ« pronave (property hook), qĂ« lejojnĂ« shtimin e logjikĂ«s shtesĂ«, e cila ekzekutohet gjatĂ« ndryshimit ose aksesit nĂ« pronat e objekteve, e realizuar pa ndĂ«rhyrjen nĂ« operacionet e leximit dhe shkrimit pĂ«rmes funksioneve tĂ« zakonshme __get dhe __set, dhe pa krijimin e metodave tĂ« tjera mbĂ«shtetĂ«se. PĂ«rdorimi i trajtuesve tĂ« pronave ofron mundĂ«sinĂ« pĂ«r tĂ« reduktuar ndjeshĂ«m volumet e kodit dhe pĂ«r tĂ« thjeshtuar riangazhimin e sjelljes sĂ« punĂ«s me pronat, falĂ« lidhjes sĂ« trajtuesit tĂ« vet me çdo pronĂ«. class User { public string $name { set { if (strlen($value) === 0) { throw new ValueError(«Emri duhet tĂ« jetĂ« i paprazë»); } $this->name = $value; } } public function __construct(string $name) { $this->name = $name; } }
- Lejohet caktimi i referencave në metoda në konstruksionin «new» pa kllapa ndarëse, domethënë, në vend të «$name = (new MyClass())->method()» tani mund të ceket «$name = new MyClass()->method()».
- Në vend të parametrin të përgjithshëm «opcache.jit_buffer_size» për të menaxhuar kompilatorin JIT dhe për të vendosur madhësinë e tamponit JIT, janë propozuar parametrat «opcache.jit» dhe «opcache.jit_buffer_size». Për të çaktivizuar JIT tani mund të specifikoni «opcache.jit=disable» në vend të «opcache.jit_buffer_size=0». Për më tepër, janë bërë ndryshime që zvogëlojnë konsumimin e memories dhe rrisin performancën e JIT në disa situata.
- Ushtrimi i sjelljes ka shpallur të vjetruar, kur për parametrat e funksioneve me një vlerë të caktuar paraprakisht null, lejohej automatikisht caktohen vlerat null. Për të mundësuar që këta parametra të pranojnë vlera null tani kërkohet një tregues i qartë prefixi "?". Për shembull, në vend të "function save(Book $book = null) {}" duhet të thuhet "function save(?Book $book = null) {}".
- Implementuar klasa \Dom\HTMLDocument, që mbështet analizimin e saktë të markup-it HTML5.
- Shtuar funksioni request_parse_body() për analizimin e kërkesave HTTP me llojin e përmbajtjes multipart/form-data (RFC1867).
Burimi: opennet.ru
