Vera asincronicità dentro PHP
Scrivi sincrono. Esegui asincrono.
Immagina PHP con coroutine, dove le funzioni familiari supportano l'I/O concorrente. Crea applicazioni concorrenti ad alte prestazioni con codice pulito, leggibile e modifiche minime!
// 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 pronta per la produzione
Coroutine
Coroutine leggere per un'esecuzione concorrente efficiente. Nessuna funzione async colorata. Basta fare spawn() e via!
I/O non bloccante
fread, fwrite, file_get_contents, ob_start, curl, MySQL, PostgreSQL. Le normali funzioni PHP ora funzionano in modo asincrono senza sforzo aggiuntivo.
TrueAsync Server
Web server nativo in C con supporto per HTTP/1.1, HTTP/2 e HTTP/3, direttamente all'interno del processo PHP.
Cancellazione cooperativa
API semplice e flessibile per la cancellazione delle coroutine. Scope::cancel().
Concorrenza strutturata
Controllo del ciclo di vita delle coroutine tramite sandbox Scope. Gestione di gruppi di coroutine tramite TaskGroup.
PDO Pool
Pool di connessioni integrato direttamente in PDO. Gestione automatica delle connessioni per le massime prestazioni.
Channel · ThreadPool
Scambio di dati tra coroutine. Canali bufferizzati e non bufferizzati per pattern producer/consumer. Tra thread via ThreadChannel; task CPU paralleli con Thread e ThreadPool.
Futures
Risultati differiti per calcoli asincroni. Composizione tramite await_all, await_first.
PHP Mobile
Supporto Android a livello del core di PHP: un runtime asincrono all'interno di un'app nativa tramite native-bridge.
Impara TrueAsync nella pratica
Guide pratiche, dalla tua prima coroutine alla concorrenza strutturata e al server integrato.
Coroutine
Il primo sguardo alle coroutine: spawn() ed esecuzione concorrente.
Scope
Chi possiede un gruppo di coroutine, le attende e le annulla insieme.
PDO Pool
Perché le coroutine non possono condividere una connessione PDO e come il pool integrato lo risolve in modo trasparente.
Thread
spawn_thread e ThreadPool: parallelismo reale per il lavoro CPU-bound.
Primo server
Un server HTTP dentro PHP: HttpServer, HttpServerConfig e il tuo primo handler.
WebSocket
Il ciclo recv, una chat room, send da altre coroutine e trySend contro client lenti.