В PHP 8.5 функция `socket_set_timeout` объявлена устаревшей

В PHP 8.5 функция `socket_set_timeout` объявлена устаревшей. Полное описание замены на `stream_set_timeout`: синтаксис, параметры и обратная совместимость.

Начиная с PHP 8.5 функция socket_set_timeout официально объявлена устаревшей (deprecated). Это изменение — часть очистки ядра PHP от дублирующих псевдонимов и унификации функций для работы с потоками. Её прямой и полный аналог — функция stream_set_timeout.

Отказ от этого псевдонима завершает долгую эволюцию: изначально функция называлась set_socket_timeout, затем была переименована в socket_set_timeout, а в итоге возвращена к нейтральному и точному названию stream_set_timeout. В PHP 8.5 псевдоним socket_set_timeout окончательно помечен как устаревший, и при его вызове возникает предупреждение:

stream_set_timeout($server, 0, 1000);
// Предупреждение: Function socket_set_timeout() is deprecated since 8.5, use stream_set_timeout() instead

Рекомендуемая замена

stream_set_timeout — это прямой аналог socket_set_timeout. Их параметры идентичны, а замена гарантирует полную обратную совместимость.

Чтобы обновить код, замените все вызовы socket_set_timeout на stream_set_timeout.

Сигнатура устаревшей функции socket_set_timeout
#[\Deprecated]
socket_set_timeout(
$stream,
int $seconds,
int $microseconds = 0
): bool
Сигнатура рекомендуемой функции stream_set_timeout
stream_set_timeout(
$stream,
int $seconds,
int $microseconds = 0
): bool

Параметры обеих функций идентичны:

Возвращаемое значение: true в случае успеха, false при ошибке.

Это устаревание — один из шагов по модернизации языка. Подробнее со всеми изменениями PHP 8.5 можно ознакомиться в полном обзоре версии.

Комментарии


Дополнительные материалы

Предыдущая Статья

PHP 8.5: Функция `xml_parser_free` объявлена устаревшей

Следующая Статья

PHP 8.5: Вывод из обработчиков буфера вывода объявлен устаревшим