教程
TrueAsync 分步入门:从你的第一个协程,到结构化并发、资源池,以及真正的并行。 教程之间层层递进,因此我们建议按顺序学习,从第一篇开始。
0 / 30 已完成
基础
协程
初识协程:spawn() 与并发执行。
取消
cancel() 与协作式取消是如何工作的。
Await
为什么需要 await(),以及它如何与协程配合。
异常
协程中的异常如何通过 await() 传播。
超时
用 timeout() 限定 await() 的等待时长。
Future
Future 与 FutureState:一个不绑定到协程的结果承诺。
通道
Channel:协程之间的值流、工作池与背压。
Scope
谁拥有一组协程、等待它们并将它们一起取消。
PDO Pool
为什么协程不能共享同一个 PDO 连接,以及内置连接池如何透明地解决这个问题。
TaskGroup
一组任务,带有结果以及 all、race、any 等待策略。
TaskSet
一个带自动清理的任务流,joinNext/joinAny/joinAll,以及一个监督循环。
并发迭代器
iterate():一行代码并发遍历一个集合。
Pool
Async\Pool:通用资源池,带健康检查与熔断器。
线程
spawn_thread 与 ThreadPool:为 CPU 密集型工作提供真正的并行。
Context
当全局变量不再奏效时,把“当前的东西”放在哪里。
TrueAsync Server
第一个服务器
PHP 内部的 HTTP 服务器:HttpServer、HttpServerConfig 与你的第一个处理器。
请求与响应
HttpRequest 与 HttpResponse:路由、json() 以及通过 HttpException 处理错误。
请求内部的并发
处理器中的 TaskGroup、负载下的 PDO Pool 与 request_context()。
字节流
send() 与 sendable()、流式读取请求体、文件上传与 sendFile()。
静态文件
StaticHandler:无需 PHP 协程即可提供文件、缓存与安全策略。
Server-Sent Events
SSE:发往浏览器的事件流、导入进度与通过 sseComment() 实现的心跳。
WebSocket
recv 循环、聊天室、从其他协程 send,以及用 trySend 应对慢客户端。
Workers 与 HTTP/3
setWorkers():服务器引擎盖下的线程、bootloader,以及同一端口上的 HTTP/3。
生产环境
超时、限制、accept 上的背压、压缩、日志与优雅关闭。
gRPC
addGrpcHandler():一元与流式、readMessage/writeMessage、trailers 与截止时间。
Laravel
首次运行
在 TrueAsync Server 下运行 Laravel,并从路由到数据库构建你的第一个 API。
连接池与事务
Eloquent 之下的 PDO Pool 与 CoroutineTransactions:为什么嵌套事务计数器不能留在 Connection 的属性上。
SSE 与 gRPC
trueasync_response()、Sse 与 grpc_handlers:直接从控制器越过被缓冲的 Illuminate Response。
不安全的模式
可变的静态属性、单例上的 once(),以及 Number::useLocale():状态在请求之间泄漏的常见方式,以及如何用静态分析捕获它们。
第三方包
Debugbar、Telescope、Inertia、spatie/permission、Socialite:哪些已经为协程做好了适配,哪些值得禁用。