Поддерживаемые функции
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).
Дальше что?