Существует крупная новая версия PHP с улучшениями, включая оператор nullsafe и атрибуты, позволяющие использовать структурированные метаданные с собственным синтаксисом PHP.
PHP начал свою жизнь 25 лет назад как простой язык сценариев, предназначенный для создания веб-страниц, но превратился в общий серверный веб-язык . В настоящее время он используется для восьми из десяти веб-сайтов, использующих серверный код.
Это серьезное обновление языка с рядом заметных улучшений. Поддержка метаданных для классов с помощью атрибутов обеспечивает альтернативу предыдущему методу разбора docblocks. Атрибуты обычно называются аннотациями на других языках.
В новом выпуске есть два новых компилятора JIT. JIT трассировки, который, по словам разработчиков, является наиболее многообещающим из двух, показывает примерно в три раза лучшую производительность на синтетических тестах и до двух раз лучше на некоторых конкретных длительно работающих приложениях.
Разработчики говорят, что они решили включить компиляторы JIT, потому что у них закончились другие способы повышения производительности PHP с помощью других стратегий оптимизации. Они также считают, что использование JIT может открыть дверь для более частого использования PHP в других, не связанных с Вебом, интенсивных сценариях, где PHP не был рассматриваемым языком без JIT.
Это дополнение также даст возможность разрабатывать встроенные функции в PHP вместо (или в дополнение к) C-не страдая от огромного снижения производительности, которое было бы связано с такой стратегией в предыдущем, не JITted движке.
Новый оператор nullsafe-это еще одно улучшение. Это означает, что разработчики могут избежать проблем с оператором коалесцирования null, в частности, что он не работает при вызовах методов. Новый оператор означает, что PHP имеет нулевое коалесцирующее поведение в методах.
Другие улучшения включают добавление типов объединения,коллекций из двух или более типов, которые указывают, что можно использовать любой из них; и именованные аргументы, поэтому теперь вы можете передавать аргументы функции на основе имени параметра, а не позиции параметра.
PHP 8.0 теперь доступен для скачивания.