PHP 8: обзор нововведений
PHP – наиболее популярный язык программирования, используемый для разработки приложений различной сложности. 26 ноября 2020 года вышло новое обновление. Мажорный релиз PHP 8 содержит набор существенных улучшений и функций по сравнению с предыдущей версией. Всем программистам, работающим с этим языком программирования, необходимо ознакомиться с изменениями для проведения рефакторинга существующего кода и его запуска на PHP 8.
Хоть релиз PHP 8 уже и состоялся, разработчики отмечают, что технология находится в стадии разработки и дополнения, и в будущем набор полезных опций будет увеличиваться. Новая версия содержит нововведения, но некоторые функции были объявлены deprecated (устаревшими). Для разработчиков, использующих актуальные версии языка, переход на PHP 8 не должен представлять сложностей.
Кардинальные отличия от предыдущих версий PHP
В новом релизе были представлены следующие ключевые обновления:
- JIT – динамическая компиляция приложения (just in time). Новая версия получила максимальную производительность, выведя PHP на первое место среди языков программирования с динамической компиляцией. Благодаря нововведению становится возможным даже писать приложения для ИИ, математические операции выполняются с невиданной прежде скоростью;
- объединение типов – Union Types. PHP – язык с динамической типизацией переменных, объединение двух и более типов может полезным в случаях, когда функция принимает аргумент, принадлежащий одному из нескольких типов, но точно неизвестно какому;
- функция ::class для получения названия класса объекта. Ранее разработчики использовали функцию get_class, нововведение работает таким же образом, но имеет более короткую запись;
- l throw-выражения. В новой версии реализовано преобразование инструкции throw в выражение даже там, где позволены только стрелочные функции и операторы, но нет возможности создать исключение;
- тип возврата static, используемый для явного указания на позднее связывание при возврате результата работы функции. При возвращении текущего объекта класса $this теперь нужно указывать модификатор static, а не this;
- stringable интерфейс. Любой класс, содержащий метод __toString(), будет имплементировать этот интерфейс без необходимости ручной реализации. Нововведение предназначено для более явного приведения типов;
- неименованные исключения. При перехвате исключения, вызванного ошибкой, ранее необходимо было сохранить значение в переменную, даже если не планировалось далее ее использовать. Это приводило к написанию избыточного неиспользуемого кода. Теперь перехват исключения возможен без сохранения данных в переменную.
Новые операторы и изменения синтаксиса
Изменения, введенные в PHP 8, коснулись привычного синтаксиса и используемых операторов:
- nullsafe operator. Все программисты PHP хорошо знают, что значение null – опасная штука, способная принести много неприятностей. Результат любой вызываемой функции должен быть проверен на null, что вызывает появление большого количества «мусорного» кода. Появление nullsafe оператора позволяет контролировать поведение методов;
- оператор выбора match, заменяющий switch и значительно сокращающий количество кода, избавляет от необходимости использования break и не выполняет приведение типов. Что важно – match выполняет нестрогое сравнение ==, в отличие от switch ===;
- именованные аргументы. В новой версии языка теперь можно передавать параметры в функцию с указанием имени значения. При этом отпадает необходимость придерживаться определенного порядка и указывать необязательные аргументы. Теперь стало возможным использование ассоциативных массивов при указании именованных параметров;
- атрибуты (аннотации). В PHP 8 был принят новый синтаксис, позволяющий добавлять метаданные в классы проще без необходимости парсить докблок-комментарии;
- сокращенный синтаксис для объединения свойств класса и конструктора, предназначенный для упрощения инициализации полей класса. Но если разработчик использует вариативные поля, необходимо вручную прописывать их и устанавливать значения в конструкторе.
Разработка сайтов на PHP 8
Интернет-агентство DEVNRISE предоставляет услуги разработки PHP-приложений различной сложности:
- корпоративные сайты;
- интернет-приложения;
- B2B и B2C приложения.
Веб-разработка ведется как с использованием систем управления контентом (MODX), так и на базе популярных фреймворков, обеспечивающих достаточное быстродействие сайтов (Laravel, Yii 2.0). Узнать больше о разработке приложений на базе PHP 8 и создании маркетинговой стратегии можно, связавшись с нами. Используйте онлайн-форму на сайте, электронную почту или мобильный телефон, узнайте стоимость вашего проекта уже сегодня!