Prezentēts pirmais jaunās PHP 8.4 izlaiduma alfa versija. Izlaidums plānots 21. novembrī. Galvenās inovācijas, kas jau ir pieejamas testēšanai vai plānotas īstenošanai PHP 8.4:
- Pievienota atbalsta īpašību apstrādātājiem (property hook), kas ļauj pievienot papildu loģiku, ko izpilda, mainot vai piekļūstot objekta īpašībām, īstenojamu bez lasīšanas un rakstīšanas operāciju pārņemšanas, izmantojot kopīgas funkcijas __get un __set, un bez papildu apvalka metožu izveides. Īpašību apstrādātāju pielietošana ļauj būtiski samazināt koda apjomu un vienkāršot īpašību uzvedības pārdefinēšanu, pateicoties paša apstrādātāja piesaistīšanai katrai īpašībai. class User { public string $name { set { if (strlen($value) === 0) { throw new ValueError(«Vārdam jābūt ne tukšam»); } $this->name = $value; } } public function __construct(string $name) { $this->name = $name; } }
- Atļauts norādīt metožu atsauces konstrukcijā «new» bez atdalīšanas iekavām, t.i., vietā «$name = (new MyClass())->method()» tagad var rakstīt «$name = new MyClass()->method()».
- Vietā vispārējā parametra «opcache.jit_buffer_size» kontrolei JIT kompilatoram un JIT bufera izmēra iestatīšanai piedāvāti parametri «opcache.jit» un «opcache.jit_buffer_size». Lai atslēgtu JIT, tagad var norādīt «opcache.jit=disable» vietā «opcache.jit_buffer_size=0». Turklāt veiktas izmaiņas, kas samazina atmiņas patēriņu un uzlabo JIT veiktspēju noteiktās situācijās.
- Paziņots par novecojušu uzvedību, kurai funkciju parametriem ar piešķirto noklusējuma vērtību null automātiski tika atļauta vērtību null piešķiršana. Lai šādi parametri varētu pieņemt vērtības null, tagad nepieciešama skaidra prefiksa «?» norādīšana. Piemēram, vietā «function save(Book $book = null) {}» jānorāda «function save(?Book $book = null) {}».
- Ieviests klase \Dom\HTMLDocument, kas nodrošina pareizu HTML5 marķējuma analīzi.
- Pievienota funkcija request_parse_body() HTTP pieprasījumu analīzei ar satura tipu multipart/form-data (RFC1867).
Avots: opennet.lv
