Tutoriels
Une introduction pas à pas à TrueAsync : de votre première coroutine à la concurrence structurée, aux pools de ressources et au vrai parallélisme. Les tutoriels s'appuient les uns sur les autres, nous vous recommandons donc de les parcourir dans l'ordre, en commençant par le premier.
0 / 30 terminés
Les bases
Coroutines
Votre premier aperçu des coroutines : spawn() et exécution concurrente.
Annulation
Comment fonctionnent cancel() et l'annulation coopérative.
Await
Pourquoi await() existe et comment il fonctionne avec les coroutines.
Exceptions
Comment les exceptions d'une coroutine se propagent à travers await().
Délais
Borner la durée d'attente de await() avec timeout().
Future
Future et FutureState : la promesse d'un résultat qui n'est pas lié à une coroutine.
Channels
Channel : un flux de valeurs entre coroutines, pools de workers et contre-pression.
Scope
Qui possède un groupe de coroutines, les attend et les annule ensemble.
PDO Pool
Pourquoi les coroutines ne peuvent pas partager une seule connexion PDO, et comment le pool intégré résout cela de façon transparente.
TaskGroup
Un groupe de tâches avec des résultats et les stratégies d'attente all, race, any.
TaskSet
Un flux de tâches avec nettoyage automatique, joinNext/joinAny/joinAll, et une boucle de supervision.
Itérateur concurrent
iterate() : parcours concurrent d'une collection en une ligne.
Pool
Async\Pool : un pool de ressources polyvalent avec vérifications de santé et un disjoncteur.
Threads
spawn_thread et ThreadPool : un vrai parallélisme pour le travail limité par le CPU.
Context
Où conserver « la chose courante » maintenant que les variables globales ne fonctionnent plus.
TrueAsync Server
Premier serveur
Un serveur HTTP dans PHP : HttpServer, HttpServerConfig, et votre premier handler.
Requête et réponse
HttpRequest et HttpResponse : routage, json(), et erreurs via HttpException.
Concurrence dans une requête
TaskGroup dans un handler, le PDO Pool sous charge, et request_context().
Flux d'octets
send() et sendable(), diffusion du corps de la requête, envoi de fichiers, et sendFile().
Fichiers statiques
StaticHandler : servir des fichiers sans coroutine PHP, mise en cache, et politiques de sécurité.
Server-Sent Events
SSE : un flux d'événements vers le navigateur, progression d'import, et battements de cœur via sseComment().
WebSocket
La boucle recv, un salon de discussion, l'envoi depuis d'autres coroutines, et trySend face aux clients lents.
Workers et HTTP/3
setWorkers() : les threads sous le capot du serveur, le bootloader, et HTTP/3 sur le même port.
Production
Délais, limites, contre-pression sur accept, compression, journalisation, et arrêt gracieux.
gRPC
addGrpcHandler() : unaire et en flux, readMessage/writeMessage, trailers, et échéances.
Laravel
Premier lancement
Faire tourner Laravel sous TrueAsync Server et votre première API, des routes jusqu'à la base de données.
Pool et transactions
PDO Pool sous Eloquent et CoroutineTransactions : pourquoi le compteur de transactions imbriquées ne peut pas rester sur une propriété de Connection.
SSE et gRPC
trueasync_response(), Sse, et grpc_handlers : atteindre ce qui se trouve derrière l'Illuminate Response bufferisé, directement depuis un contrôleur.
Motifs dangereux
Propriétés statiques mutables, once() sur un singleton, et Number::useLocale() : les fuites d'état classiques entre requêtes, et comment les détecter avec l'analyse statique.
Packages tiers
Debugbar, Telescope, Inertia, spatie/permission, Socialite : ce qui est déjà adapté pour les coroutines et ce qu'il vaut mieux désactiver.