Den första alfa-versionen av den nya grenen av programmeringssprÄket PHP 8.4 har presenterats. Lanseringen Àr planerad till den 21 november. De huvudsakliga nyheterna, som redan Àr tillgÀngliga för testning eller som planeras att implementeras i PHP 8.4:
- Stöd för property hooks har lagts till, vilket gör det möjligt att lÀgga till extra logik som utförs vid Àndring eller Ätkomst av objektens egenskaper, implementerat utan att fÄnga lÀsning och skrivning genom de allmÀnna funktionerna __get och __set, och utan att skapa extra wrapper-metoder. AnvÀndningen av property hooks möjliggör en betydande minskning av kodens volym och förenklar omdefinitionen av beteendet för att hantera egenskaper, tack vare kopplingen av en egen handler till varje egenskap. class User { public string $name { set { if (strlen($value) === 0) { throw new ValueError(«Namnet mÄste vara icke-tomt»); } $this->name = $value; } } public function __construct(string $name) { $this->name = $name; } }
- Referenser till metoder i konstruktionen "new" Àr nu tillÄtna utan avskiljande parenteser, det vill sÀga istÀllet för "$name = (new MyClass())->method()" kan man nu ange "$name = new MyClass()->method()".
- IstÀllet för den allmÀnna parametern "opcache.jit_buffer_size" för att styra JIT-kompilatorn och stÀlla in storleken pÄ JIT-buffern har parametrarna "opcache.jit" och "opcache.jit_buffer_size" föreslagits. För att stÀnga av JIT kan man nu ange "opcache.jit=disable" istÀllet för "opcache.jit_buffer_size=0". Dessutom har Àndringar gjorts som minskar minnesförbrukningen och förbÀttrar prestandan för JIT i vissa situationer.
- Beteendet dÀr parameterar för funktioner med ett standardvÀrde av null automatiskt tillÀt tilldelning av null-vÀrden har förklarats som förÄldrat. För att sÄdana parametrar ska kunna ta emot null-vÀrden krÀvs nu ett tydligt prefix "?". Till exempel istÀllet för "function save(Book $book = null) {}" bör man ange "function save(?Book $book = null) {}".
- Klassen \Dom\HTMLDocument har implementerats, vilket stöder korrekt analys av HTML5-markup.
- Funktionen request_parse_body() har lagts till för att analysera HTTP-förfrÄgningar med innehÄllstypen multipart/form-data (RFC1867).
KĂ€lla: opennet.ru
