Поддерживаемые функции

TrueAsync адаптирует 70+ стандартных PHP функций для неблокирующей работы в контексте корутин. Все перечисленные функции автоматически становятся асинхронными при вызове внутри корутины. Вне корутины они работают как обычно.


DNS

Функция Описание
gethostbyname() Разрешение имени хоста в IP-адрес
gethostbyaddr() Обратное разрешение IP-адреса в имя хоста
gethostbynamel() Получение списка IP-адресов для имени хоста

Базы данных

PDO MySQL

Функция Описание
PDO::__construct() Неблокирующее подключение
PDO::prepare() Подготовка запроса
PDO::exec() Выполнение запроса
PDOStatement::execute() Выполнение подготовленного запроса
PDOStatement::fetch() Получение результатов

PDO PgSQL

Функция Описание
PDO::__construct() Неблокирующее подключение
PDO::prepare() Подготовка запроса
PDO::exec() Выполнение запроса
PDOStatement::execute() Выполнение подготовленного запроса
PDOStatement::fetch() Получение результатов

PDO Connection Pooling

Прозрачный пул соединений для PDO через интеграцию с Async\Pool. Каждая корутина получает собственное соединение из пула с автоматическим управлением жизненным циклом.

MySQLi

Функция Описание
mysqli_connect() Неблокирующее подключение
mysqli_query() Выполнение запроса
mysqli_prepare() Подготовка запроса
mysqli_stmt_execute() Выполнение подготовленного запроса
mysqli_fetch_*() Получение результатов

PostgreSQL (нативный)

Функция Описание
pg_connect() Неблокирующее подключение
pg_query() Выполнение запроса
pg_prepare() Подготовка запроса
pg_execute() Выполнение подготовленного запроса
pg_fetch_*() Получение результатов

Каждый async-контекст использует отдельное соединение для безопасной конкурентности.


CURL

Функция Описание
curl_exec() Выполнение запроса
curl_multi_exec() Выполнение нескольких запросов
curl_multi_select() Ожидание активности
curl_multi_getcontent() Получение содержимого
curl_setopt() Установка параметров
curl_getinfo() Получение информации о запросе
curl_error() Получение ошибки
curl_close() Закрытие дескриптора

Сокеты

Функция Описание
socket_create() Создание сокета
socket_create_pair() Создание пары сокетов
socket_connect() Подключение
socket_accept() Принятие соединения
socket_read() Чтение данных
socket_write() Запись данных
socket_send() Отправка данных
socket_recv() Получение данных
socket_sendto() Отправка с адресом
socket_recvfrom() Получение с адресом
socket_bind() Привязка к адресу
socket_listen() Прослушивание
socket_select() Мониторинг активности сокетов

Файловый и потоковый ввод-вывод

Функция Описание
fopen() Открытие файла
fclose() Закрытие файла
fread() Чтение из файла
fwrite() Запись в файл
fgets() Чтение строки
fgetc() Чтение символа
fgetcsv() Чтение CSV-строки
fputcsv() Запись CSV-строки
fseek() Установка позиции
ftell() Получение позиции
rewind() Сброс позиции
ftruncate() Обрезка файла
fflush() Сброс буферов
fscanf() Форматированное чтение
file_get_contents() Чтение всего файла
file_put_contents() Запись всего файла
file() Чтение файла в массив
copy() Копирование файла
tmpfile() Создание временного файла
readfile() Вывод файла
fpassthru() Вывод остатка файла
stream_get_contents() Чтение остатка потока
stream_copy_to_stream() Копирование между потоками

Потоковые сокеты

Функция Описание
stream_socket_client() Создание клиентского соединения
stream_socket_server() Создание серверного сокета
stream_socket_accept() Принятие соединения
stream_select() Мониторинг активности потоков
stream_context_create() Создание контекста с поддержкой async

Ограничение: stream_select() с pipe-потоками (например, от proc_open()) не поддерживается в Windows. На Linux/macOS работает через event loop.


Запуск процессов

Функция Описание
proc_open() Открытие процесса с pipe-каналами
proc_close() Закрытие процесса
exec() Выполнение внешней команды
shell_exec() Выполнение команды через оболочку
system() Выполнение системной команды
passthru() Выполнение с прямым выводом

Таймеры и задержки

Функция Описание
sleep() Задержка в секундах
usleep() Задержка в микросекундах
time_nanosleep() Задержка с наносекундной точностью
time_sleep_until() Ожидание до указанного времени

Буферизация вывода

Каждая корутина получает изолированный буфер вывода.

Функция Описание
ob_start() Начало буферизации
ob_flush() Сброс буфера
ob_clean() Очистка буфера
ob_get_contents() Получение содержимого буфера
ob_end_clean() Завершение буферизации

Ещё не поддерживается

Функции, которые планируются к реализации или пока не адаптированы.

DNS

Функция Описание
dns_check_record() / checkdnsrr() Проверка DNS-записи
dns_get_mx() / getmxrr() Получение MX-записей
dns_get_record() Получение DNS-записей произвольного типа

Базы данных

Расширение Описание
PDO ODBC Драйвер ODBC
PDO Oracle Драйвер Oracle
PDO SQLite Драйвер SQLite
PDO Firebird Драйвер Firebird
MongoDB Клиент MongoDB

Файловые операции (метаданные)

Функция Описание
flock() Блокировка файлов
opendir() / readdir() / closedir() Работа с каталогами
unlink() / rename() Удаление и переименование файлов
mkdir() / rmdir() Создание и удаление каталогов
stat() / lstat() Информация о файлах
readlink() Чтение символических ссылок

Примечание: Файловые операции с метаданными на локальном диске выполняются за микросекунды. Их асинхронность имеет смысл только при работе с сетевыми файловыми системами (NFS).


Дальше что?