Funzioni supportate
TrueAsync adatta oltre 70 funzioni PHP standard per il funzionamento non-bloccante all’interno delle coroutine.
Tutte le funzioni elencate diventano automaticamente asincrone quando vengono chiamate all’interno di una coroutine.
Al di fuori di una coroutine, funzionano normalmente.
DNS
| Funzione |
Descrizione |
gethostbyname() |
Risolvere nome host in indirizzo IP |
gethostbyaddr() |
Risoluzione inversa dell’indirizzo IP in nome host |
gethostbynamel() |
Ottenere l’elenco degli indirizzi IP per un nome host |
Database
PDO MySQL
| Funzione |
Descrizione |
PDO::__construct() |
Connessione non-bloccante |
PDO::prepare() |
Preparare query |
PDO::exec() |
Eseguire query |
PDOStatement::execute() |
Eseguire query preparata |
PDOStatement::fetch() |
Recuperare risultati |
PDO PgSQL
| Funzione |
Descrizione |
PDO::__construct() |
Connessione non-bloccante |
PDO::prepare() |
Preparare query |
PDO::exec() |
Eseguire query |
PDOStatement::execute() |
Eseguire query preparata |
PDOStatement::fetch() |
Recuperare risultati |
Pool di connessioni PDO
Pool di connessioni trasparente per PDO tramite integrazione con Async\Pool.
Ogni coroutine riceve la propria connessione dal pool con gestione automatica del ciclo di vita.
MySQLi
| Funzione |
Descrizione |
mysqli_connect() |
Connessione non-bloccante |
mysqli_query() |
Eseguire query |
mysqli_prepare() |
Preparare query |
mysqli_stmt_execute() |
Eseguire query preparata |
mysqli_fetch_*() |
Recuperare risultati |
PostgreSQL (nativo)
| Funzione |
Descrizione |
pg_connect() |
Connessione non-bloccante |
pg_query() |
Eseguire query |
pg_prepare() |
Preparare query |
pg_execute() |
Eseguire query preparata |
pg_fetch_*() |
Recuperare risultati |
Ogni contesto async utilizza una connessione separata per una concorrenza sicura.
CURL
| Funzione |
Descrizione |
curl_exec() |
Eseguire richiesta |
curl_multi_exec() |
Eseguire più richieste |
curl_multi_select() |
Attendere attività |
curl_multi_getcontent() |
Ottenere contenuto |
curl_setopt() |
Impostare opzioni |
curl_getinfo() |
Ottenere info richiesta |
curl_error() |
Ottenere errore |
curl_close() |
Chiudere handle |
Socket
| Funzione |
Descrizione |
socket_create() |
Creare socket |
socket_create_pair() |
Creare coppia di socket |
socket_connect() |
Connettere |
socket_accept() |
Accettare connessione |
socket_read() |
Leggere dati |
socket_write() |
Scrivere dati |
socket_send() |
Inviare dati |
socket_recv() |
Ricevere dati |
socket_sendto() |
Inviare a indirizzo |
socket_recvfrom() |
Ricevere da indirizzo |
socket_bind() |
Associare a indirizzo |
socket_listen() |
Ascoltare |
socket_select() |
Monitorare attività socket |
I/O file e flussi
| Funzione |
Descrizione |
fopen() |
Aprire file |
fclose() |
Chiudere file |
fread() |
Leggere da file |
fwrite() |
Scrivere su file |
fgets() |
Leggere riga |
fgetc() |
Leggere carattere |
fgetcsv() |
Leggere riga CSV |
fputcsv() |
Scrivere riga CSV |
fseek() |
Impostare posizione |
ftell() |
Ottenere posizione |
rewind() |
Reimpostare posizione |
ftruncate() |
Troncare file |
fflush() |
Svuotare buffer |
fscanf() |
Lettura formattata |
file_get_contents() |
Leggere file intero |
file_put_contents() |
Scrivere file intero |
file() |
Leggere file in array |
copy() |
Copiare file |
tmpfile() |
Creare file temporaneo |
readfile() |
Mostrare file |
fpassthru() |
Mostrare resto del file |
stream_get_contents() |
Leggere resto del flusso |
stream_copy_to_stream() |
Copiare tra flussi |
Socket di flusso
| Funzione |
Descrizione |
stream_socket_client() |
Creare connessione client |
stream_socket_server() |
Creare socket server |
stream_socket_accept() |
Accettare connessione |
stream_select() |
Monitorare attività dei flussi |
stream_context_create() |
Creare contesto async |
Limitazione: stream_select() con flussi pipe (es. da proc_open()) non è supportato su Windows. Su Linux/macOS funziona nativamente tramite il ciclo di eventi.
Esecuzione di processi
| Funzione |
Descrizione |
proc_open() |
Aprire processo con pipe |
proc_close() |
Chiudere processo |
exec() |
Eseguire comando esterno |
shell_exec() |
Eseguire comando shell |
system() |
Eseguire comando di sistema |
passthru() |
Eseguire con output diretto |
Timer e ritardi
| Funzione |
Descrizione |
sleep() |
Ritardo in secondi |
usleep() |
Ritardo in microsecondi |
time_nanosleep() |
Ritardo con precisione al nanosecondo |
time_sleep_until() |
Attendere fino al timestamp |
Buffer di output
Ogni coroutine riceve un buffer di output isolato.
| Funzione |
Descrizione |
ob_start() |
Avviare il buffering |
ob_flush() |
Svuotare il buffer |
ob_clean() |
Pulire il buffer |
ob_get_contents() |
Ottenere il contenuto del buffer |
ob_end_clean() |
Terminare il buffering |
Non ancora supportato
Funzioni pianificate per l’implementazione o non ancora adattate.
DNS
| Funzione |
Descrizione |
dns_check_record() / checkdnsrr() |
Verificare record DNS |
dns_get_mx() / getmxrr() |
Ottenere record MX |
dns_get_record() |
Ottenere record DNS |
Database
| Estensione |
Descrizione |
| PDO ODBC |
Driver ODBC |
| PDO Oracle |
Driver Oracle |
| PDO SQLite |
Driver SQLite |
| PDO Firebird |
Driver Firebird |
| MongoDB |
Client MongoDB |
| Funzione |
Descrizione |
flock() |
Blocco file |
opendir() / readdir() / closedir() |
Attraversamento directory |
unlink() / rename() |
Eliminazione e rinomina file |
mkdir() / rmdir() |
Creazione e rimozione directory |
stat() / lstat() |
Informazioni sui file |
readlink() |
Lettura dei link simbolici |
Nota: Le operazioni sui metadati dei file su disco locale si completano in microsecondi. La loro asincronia ha senso solo per i file system di rete (NFS).
E poi?