Започна алфа тестването на PHP 8.4

Представен е първият алфа релиз на новата версия на програмния език PHP 8.4. Релизът е насрочен за 21 ноември. Основните новости, които вече са налични за тестване или планирани за реализация в PHP 8.4:

  • Добавена е поддръжка за прикрепяне на обработчици на свойства (property hook), позволяващи добавяне на допълнителна логика, която се изпълнява при промяна или достъп до свойствата на обекта, реализирана без прихващане на операции за четене и писане чрез общите функции __get и __set, и без създаване на допълнителни методи-обвивки. Използването на обработчици на свойства дава възможност значително да се намали обемът на кода и да се опрости перенаписването на поведението при работа със свойства, благодарение на привързването на собствен обработчик към всяко свойство. 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; } }
  • Позволено е посочването на ссылки към методи в конструкцията „new“ без отделящи скобки, т.е. вместо „$name = (new MyClass())->method()“ сега може да се посочи „$name = new MyClass()->method()“.
  • Вместо общият параметър „opcache.jit_buffer_size“ за управление на JIT компилатора и настройка на размера на буфера JIT са предложени параметрите „opcache.jit“ и „opcache.jit_buffer_size“. За деактивиране на JIT вече може да се посочи „opcache.jit=disable“ вместо „opcache.jit_buffer_size=0“. Освен това са направени промени, които намаляват потреблението на памет и увеличават производителността на JIT в някои ситуации.
  • Обявено е остарялото поведение, при което за параметрите на функцията с присвоено по подразбиране значение null автоматично се разрешава присвояването на стойности null. За да могат подобни параметри да приемат null стойности, сега е необходимо явно указване на префикса „?“. Например, вместо „function save(Book $book = null) {}“ трябва да се посочи „function save(?Book $book = null) {}“.
  • Реализиран е клас \Dom\HTMLDocument, поддържащ коректно разбиране наHTML5.
  • Добавена е функция request_parse_body() за разбиране на HTTP заявки с тип съдържание multipart/form-data (RFC1867).

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster