Підтримувані функції
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
Прозорий пул з’єднань для 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).
Що далі?