Официально выпущено долгожданное обновление широко используемого языка серверных веб-скриптов PHP 8.3, включающее в себя множество новых функций и улучшений. Явная типизация констант класса, глубокое клонирование свойств, доступных только для чтения, а также расширенная функциональность случайной выборки входят в число новых возможностей, которые теперь доступны разработчикам, использующим удобный набор инструментов PHP 8.3 для создания динамических веб-страниц.
Публично выпущенную 23 ноября версию PHP 8.3 можно загрузить с php.net. Основой этого крупного обновления является введение констант типизированных классов. В этом обновлении PHP 8.3 расширяет поддержку объявления типов констант класса, интерфейса, типажа и перечисления. Примечательно, что объявления типов констант класса включают все объявления типов, одобренные PHP, за исключением типов void, callable и Never. Причина недоступности типов void и callable кроется в проблемах, поднятых во время обсуждений типизированных свойств v2 RFC. Между тем, слово «никогда» не имеет отношения к контексту констант, поэтому оно является исключением.
Еще одна замечательная особенность PHP 8.3 — возможность глубокого клонирования свойств, доступных только для чтения. Это позволяет свойствам, доступным только для чтения, изменяться один раз в рамках магического метода __clone. Кроме того, классы, доступные только для чтения, теперь можно повторно инициализировать в процессе клонирования. Интересно, что PHP 8.3 также открывает возможность для классов, не доступных только для чтения, расширять классы, доступные только для чтения, что дает разработчикам больше гибкости в их коде.
Другие усовершенствования PHP 8.3 включают новый атрибут [#\Override], который выражает намерение в коде. При добавлении этого атрибута к методу механизм PHP 8.3 проверяет, существует ли метод с таким же именем в родительском классе или любом из реализованных интерфейсов. Если такой метод не найден, возникнет ошибка времени компиляции.
Существенным улучшением линтера командной строки является возможность принимать переменные входные имена файлов, предназначенных для линтинга. Расширение Random, представленное в PHP 8.2, теперь содержит новый метод, который создает случайные строки, содержащие только определенные байты. Это позволяет разработчикам с легкостью генерировать случайные идентификаторы, такие как доменные имена или числовые строки неограниченной длины.
В выпуск также включена новая функция json_validate(), которая проверяет, является ли строка действительным JSON. Кроме того, анонимные классы теперь доступны только для чтения, что пополняет список привлекательных возможностей PHP 8.3.
Стоит отметить, что такие платформы, как AppMaster, могут быть чрезвычайно выгодным вариантом для разработчиков, которые хотят быстро разрабатывать и развертывать масштабируемые и эффективные приложения. Эта платформа no-code помогает упростить процесс разработки приложений, обеспечивая более быстрый выход на рынок. Функции платформы AppMaster, такие как визуальное создание моделей данных (схема базы данных), бизнес-логика (называемая бизнес-процессами), REST API и конечные точки WSS, могут эффективно дополнять приложения на основе PHP.
Предыдущее крупное обновление PHP 8.2, выпущенное в декабре прошлого года, было известно введением классов только для чтения. Кажется, что развитие PHP невозможно остановить, и программисты всего спектра с нетерпением ждут возможности изучить дальнейшие достижения PHP, которые им предлагает.