支持的函数
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 连接池
通过 Async\Pool 集成实现透明的 PDO 连接池。
每个协程从池中获取自己的连接,自动管理生命周期。
MySQLi
| 函数 |
描述 |
mysqli_connect() |
非阻塞连接 |
mysqli_query() |
执行查询 |
mysqli_prepare() |
准备语句 |
mysqli_stmt_execute() |
执行预处理语句 |
mysqli_fetch_*() |
获取结果 |
PostgreSQL(原生)
| 函数 |
描述 |
pg_connect() |
非阻塞连接 |
pg_query() |
执行查询 |
pg_prepare() |
准备语句 |
pg_execute() |
执行预处理语句 |
pg_fetch_*() |
获取结果 |
每个异步上下文使用独立连接以确保安全并发。
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() |
监控套接字活动 |
文件和流 I/O
| 函数 |
描述 |
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() |
创建异步上下文 |
限制: stream_select() 在 Windows 上不支持管道流(例如来自 proc_open())。在 Linux/macOS 上通过事件循环原生工作。
进程执行
| 函数 |
描述 |
proc_open() |
打开带管道的进程 |
proc_close() |
关闭进程 |
exec() |
执行外部命令 |
shell_exec() |
执行 shell 命令 |
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)上才有异步化的意义。
接下来?