Véritable asynchrone dans PHP
Écrivez synchrone. Exécutez asynchrone.
Imaginez PHP avec des coroutines, où les fonctions familières prennent en charge les E/S concurrentes. Créez des applications concurrentes haute performance avec un code propre et lisible, et un minimum de modifications !
// three coroutines run at the same time
$page = spawn(fn() => file_get_contents($url));
$rows = spawn(fn() => $pdo->query($sql)->fetchAll());
$stats = spawn(fn() => file_get_contents($api));
// wait for all three, cancel after 2s
[$html, $data, $meta] = await_all_or_fail(
[$page, $rows, $stats], timeout(2000));API prête pour la production
Coroutines
Des coroutines légères pour une exécution concurrente efficace. Pas de fonctions async colorées. Faites simplement spawn() et c'est parti !
I/O non bloquante
fread, fwrite, file_get_contents, ob_start, curl, MySQL, PostgreSQL. Les fonctions PHP classiques fonctionnent désormais de manière asynchrone sans effort supplémentaire.
TrueAsync Server
Serveur web natif en C avec prise en charge de HTTP/1.1, HTTP/2 et HTTP/3, directement à l'intérieur du processus PHP.
Annulation coopérative
API simple et flexible pour l'annulation des coroutines. Scope::cancel().
Concurrence structurée
Contrôle du cycle de vie des coroutines grâce au bac à sable Scope. Gestion de groupes de coroutines via TaskGroup.
PDO Pool
Pool de connexions intégré directement dans PDO. Gestion automatique des connexions pour des performances maximales.
Channel · ThreadPool
Échange de données entre coroutines. Canaux avec et sans tampon pour les patrons producteur/consommateur. Entre threads via ThreadChannel ; tâches CPU parallèles via Thread et ThreadPool.
Futures
Résultats différés pour les calculs asynchrones. Composition via await_all, await_first.
PHP Mobile
Prise en charge d'Android au niveau du cœur de PHP : un runtime asynchrone au sein d'une application native via native-bridge.
Apprenez TrueAsync en pratique
Des guides pratiques, de votre première coroutine à la concurrence structurée et au serveur intégré.
Coroutines
Votre premier aperçu des coroutines : spawn() et exécution concurrente.
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.
Threads
spawn_thread et ThreadPool : un vrai parallélisme pour le travail limité par le CPU.
Premier serveur
Un serveur HTTP dans PHP : HttpServer, HttpServerConfig, et votre premier handler.
WebSocket
La boucle recv, un salon de discussion, l'envoi depuis d'autres coroutines, et trySend face aux clients lents.