Започна алфа-тестовото издание на 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("Името не трябва да е празно"); } $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