PHP 7.4. Что нового?

22.11.2019 на прочтение 3 минуты

Времени к выходу новой версии осталось совсем немного. Поэтому давайте рассмотрим основные обновления в новом релизе PHP 7.4, выход которого запланирован на 28 ноября 2019 года. Этот релиз должен еще раз повысить производительность и улучшить читаемость и, конечно же, удобство сопровождения кода. 

Install-PHP-7.4

Вместо array_merge: в PHP 7.4 будет оператор Spread.

Именно Spread должен предоставить еще лучшую производительность по сравнению с array_merge. Этот оператор распространения является языковой структурой, в том числе оптимизация времени компиляции может быть выполнена для постоянных массивов. Spread также имеет поддержку любых перемещаемых объектов, используемая на данный момент array_merge поддерживает исключительно массивы.

Стрелочные функции 2.0 или короткие замыкания.

Анонимные функции очень сложные в процессе реализации и поддержки PHP. В данном релизе предложено ввести более короткий синтаксис стрелочных функций (или коротких замыканий). Это очистит PHP-код. Данное нововведение улучшит сам язык и сделает его более читаемым и простым в процессе обслуживания. Можно использовать параметры и возвращаемые типы , значения по умолчанию, списки аргументов переменной длины, передавать и возвращать по ссылке и тп.

Типизированные Свойства 2.0.

Начиная с версии PHP 7.2 можно использовать подсказки с object типом данных. А уже в PHP 7.4 добавляется поддержка объявлений типов свойств первого класса.

Слабые ссылки.

В PHP 7.4 вводится класс WeakReference. Именно он предоставляет возможность сохранять ссылку на объект, который не мешает запуску процесса уничтожения самого объекта. Сейчас PHP поддерживает Weak References, с расширением pecl-weakref. Поэтому новый API обладает набором отличий от документированного WeakRefкласса.

Предзагрузка (PHP Preloading).

Данное нововведение как раз должно повысить показатели производительности. Что такое предварительная загрузка? Это по сути загрузка библиотек и фреймворков в OPCache при инициализации модуля. Когда происходит запуск сервера и любого кода приложения, можно загрузить PHP файлы в память, а далее сделать их доступными на постоянной основе для всех запросов после - для этого сервера. Все функции и классы этих файлов будут доступны для запросов из коробки, как и внутренние объекты.

Предварительная загрузка имеет управление от php.ini директивы: opcache.preload. Она ведет на PHP-скрипт, который компилируется и выполняется при запуске сервера. Файл также предназначен для предварительной загрузки доп. файлов, включая их или через opcache_compile_file()функцию. Более детальную информацию можно найти в документации PHP на официальных ресурсах.

С другой стороны это означает, что предварительно загруженные файлы остаются в кеше в памяти opcache навсегда. Модификация их соответствующих исходных файлов не будет иметь никакого эффекта без перезапуска другого сервера. Весь функционал загруженных файлов будет постоянно находится в специальных таблицах функций и классов PHP и будет доступен для последующих запросов.  В целом это должно улучшить показатели производительности. 

Это, конечно же, еще не все нововведения в PHP 7.4. Их на самом деле намного больше и все они направлены на то, чтобы сделать язык еще более производительным. На данный момент на нашем хостинге уже доступна версия PHP 7.4 на всех тарифах. 

Купить PHP хостинг

PHP 7 по сравнению с предыдущими версиями значительно быстрее и это доказано множествами тестов, например:

  • Увеличение скорости выполнения запросов в 2 раза больше по сравнению с PHP 5.6 (официальные данные). 
  • Кристиан Виг сделал сравнения в ходе которого обнаружено, что PHP 5.2 на 400% медленнее, чем PHP 7.
  • Андрей Аврам сравнивал PHP 7.4 и 7.3, более быстрое выполнения и меньшее использование памяти как раз в обновленной версии.
  • Phoronix сделали специальное тестирование и выявили, что PHP 7.4 Alpha немного быстрее PHP 7.3.

 


Close Screen
Alla Rud
Статей: 1186
Оцените статью:


Спасибо за отзыв
Рейтинг: 5 из 5 Голосов: 5