Bol spustený prvý alfa-release novej vetvy programovacieho jazyka PHP 8.4. Uvoľnenie je naplánované na 21. novembra. Hlavné novinky, ktoré sú už dostupné na testovanie alebo sú plánované na implementáciu v PHP 8.4:
- Pridaná podpora pripojenia správcov vlastností (property hook), ktoré umožňujú pridať ďalšiu logiku vykonávanú pri zmene alebo prístupe k vlastnostiam objektu, implementovanú bez zachytenia operácií čítania a zápisu pomocou bežných funkcií __get a __set, a bez vytvárania ďalších obalových metód. Použitie správcov vlastností umožňuje výrazne skrátiť objem kódu a zjednodušiť predefinovanie správania pri práci s vlastnosťami, vďaka pripojeniu vlastného správcu k každej vlastnosti. class User { public string $name { set { if (strlen($value) === 0) { throw new ValueError("Name must be non-empty"); } $this->name = $value; } } public function __construct(string $name) { $this->name = $name; } }
- Povolené je používanie odkazov na metódy v konštrukcii „new“ bez oddelujúcich zátvoriek, t.j. namiesto „$name = (new MyClass())->method()“ je teraz možné uvádzať „$name = new MyClass()->method()“.
- Namiesto celkového parametra „opcache.jit_buffer_size“ na správu JIT-kompilátora a nastavenie veľkosti JIT vyrovnávacej pamäte sú navrhnuté parametre „opcache.jit“ a „opcache.jit_buffer_size“. Pre zakázanie JIT je teraz možné uvádzať „opcache.jit=disable“ namiesto „opcache.jit_buffer_size=0“. Okrem toho boli vykonané zmeny, ktoré znižujú spotrebu pamäte a zvyšujú výkon JIT v niektorých situáciách.
- Bol vyhlásený za zastarané správanie, pri ktorom pre parametre funkcií s hodnotou null priradenou ako predvolenou hodnotou sa automaticky povoľovalo priradenie hodnôt null. Aby takéto parametre mohli prijímať hodnoty null, teraz je potrebné explicitne uviesť prefix „?“. Napríklad namiesto „function save(Book $book = null) {}“ by sa malo uvádzať „function save(?Book $book = null) {}“.
- Bol implementovaný trieda \Dom\HTMLDocument, ktorá podporuje správny rozbor HTML5.
- Pridaná funkcia request_parse_body() na rozbor HTTP požiadaviek s typom obsahu multipart/form-data (RFC1867).
Zdroj: opennet.ru
