PHP 8.5 приносит безопасный анализ URI и URL
Новая версия 30-летнего языка сервера добавляет оператор конвейера, постоянные дескрипторы cURL и другие функции, упрощающие разработку и повышающие безопасность приложений.
Основные идеи
Мнение автора
PHP 8.5 стал настоящим шагом вперёд для языка, которому уже 30 лет. Новые расширения и возможности вроде безопасного анализа URI, оператора конвейера и атрибутов #[\NoDiscard], делают код чище и безопаснее. Особенно полезны функции для работы с массивами и постоянные дескрипторы cURL, упрощающие серверные сценарии.
Программисты, вышла версия PHP 8.5. Она добавляет расширение для безопасного анализа URI и URL-адресов в серверный скриптовый язык, которому исполнилось 30 лет.
Крупное обновление выпустили 20 ноября, и оно уже доступно на сайте PHP.net. Расширение URI в этом апдейте доступно всегда. Оно предоставляет API для безопасного разбора и изменения URI и URL согласно стандартам RFC 3986 и WHATWG. Также в PHP 8.5 появился оператор конвейера.
Он позволяет объединять вызовы функций в цепочку без промежуточных переменных. Этот оператор заменяет множество вложенных вызовов последовательностью, которую можно читать слева направо. Кроме того, разработчики теперь могут обновлять свойства при клонировании объекта и передавать ассоциативный массив в функцию clone(). Это обеспечивает прямую поддержку шаблона with-er для классов, доступных только для чтения.
Разработчики на PHP 8.5 получили доступ к атрибуту #[\NoDiscard]. Если добавить его к функции, PHP проверит, использовали ли вы возвращаемое значение. Если нет — система выдаст предупреждение. Для намеренного игнорирования значения используют приведение типа (void). Кроме того, статические замыкания и вызываемые объекты первого класса теперь можно использовать в константных выражениях. Сюда входят параметры атрибутов, значения свойств и аргументов по умолчанию, а также константы.
PHP 8.5 также поддерживает постоянные дескрипторы cURL. В отличие от curl_share_init(), дескрипторы от curl_share_init_persistent() не удаляются в конце запроса. Если система находит постоянный дескриптор с тем же набором параметров общего доступа, она использует его повторно. Это исключает затраты на инициализацию cURL каждый раз. Функции array_first() и array_last() возвращают первое или последнее значение массива соответственно. Если массив пуст, вернется nul. Дополнительные возможности версии 8.5 включают следующее:
- Атрибут #[\DelayedTargetValidation] может подавлять ошибки компиляции из-за атрибутов ядра и расширений, которые применили неправильно.
- Фатальные ошибки, такие как превышение максимального времени выполнения, теперь включают обратную трассировку.
- Атрибуты теперь могут ссылаться на константы.
- Атрибут #[\Override] можно применять к свойствам.
- Атрибут #[\Deprecated] можно использовать для констант и трейтов.
- Статические свойства поддерживают асимметричную видимость.
- Свойства можно помечать как final при продвижении в конструкторе.
- Оператор обратных кавычек как псевдоним для shell_exec() устарел.
Лучшие новые телефоны на 2025 год: найдите свой следующий телефон!









