Туторіали
Покрокове знайомство з TrueAsync: від першої корутини до структурованої конкурентності, пулів ресурсів і справжнього паралелізму. Туторіали побудовані один на одному, тому радимо проходити їх по порядку, починаючи з першого.
0 / 30 пройдено
Основи
Корутини
Перше знайомство з корутинами: spawn() і конкурентне виконання.
Скасування
Як працює cancel() і кооперативне скасування корутин.
Await
Навіщо потрібен await() і як він працює з корутинами.
Винятки
Як винятки з корутини пробрасуються через await().
Таймаути
Обмеження часу очікування await() через timeout().
Future
Future і FutureState: обіцянка результату, яка не прив’язана до корутини.
Канали
Channel: потік значень між корутинами, пул воркерів і зворотний тиск.
Scope
Хто володіє корутинами, чекає на їх завершення і скасовує всю групу разом.
PDO Pool
Чому корутинам не можна ділити одне PDO-з’єднання і як вбудований пул вирішує це прозоро.
TaskGroup
Група задач з результатами і стратегії очікування all, race, any.
TaskSet
Потік задач з автоочищенням, joinNext/joinAny/joinAll і цикл супервізора.
Конкурентний ітератор
iterate(): конкурентний обхід колекції одним рядком.
Pool
Async\Pool: універсальний пул ресурсів з healthcheck і circuit breaker.
Потоки
spawn_thread і ThreadPool: справжній паралелізм для обчислень.
Context
Де зберігати «поточне», коли глобальні змінні перестали працювати.
TrueAsync Server
Перший сервер
HTTP-сервер усередині PHP: HttpServer, HttpServerConfig і перший обробник.
Запит і відповідь
HttpRequest і HttpResponse: маршрутизація, json() і помилки через HttpException.
Конкурентність усередині запиту
TaskGroup в обробнику, PDO Pool під навантаженням і request_context().
Потоки байтів
send() і sendable(), потокове читання тіла, завантаження файлів і sendFile().
Статика
StaticHandler: віддача файлів без PHP-корутини, кешування і політики безпеки.
Server-Sent Events
SSE: потік подій у браузер, прогрес імпорту і heartbeat через sseComment().
WebSocket
Цикл recv, чат-кімната, send з інших корутин і trySend проти повільних клієнтів.
Воркери і HTTP/3
setWorkers(): потоки під капотом сервера, bootloader і HTTP/3 на тому ж порту.
Продакшен
Таймаути, ліміти, зворотний тиск на accept, компресія, логи і graceful shutdown.
gRPC
addGrpcHandler(): unary і стримінг, readMessage/writeMessage, трейлери і дедлайни.
Laravel
Перший запуск
Запуск Laravel під TrueAsync Server і перший API, від маршрутів до бази даних.
Пул і транзакції
PDO Pool під Eloquent і CoroutineTransactions: чому лічильник вкладених транзакцій не може лишатися властивістю Connection.
SSE і gRPC
trueasync_response(), Sse і grpc_handlers: як дістатися буферизованого Illuminate Response прямо з контролера.
Небезпечні патерни
Мутабельні статичні властивості, once() на синглтоні та Number::useLocale(): типові способи витоку стану між запитами і як їх ловити статичним аналізом.
Сторонні пакети
Debugbar, Telescope, Inertia, spatie/permission, Socialite: що вже адаптоване під корутини, а що варто вимкнути.