Fonctions supportées

TrueAsync adapte plus de 70 fonctions PHP standard pour un fonctionnement non-bloquant au sein des coroutines. Toutes les fonctions listées deviennent automatiquement asynchrones lorsqu’elles sont appelées dans une coroutine. En dehors d’une coroutine, elles fonctionnent normalement.


DNS

Fonction Description
gethostbyname() Résoudre un nom d’hôte en adresse IP
gethostbyaddr() Résolution inverse d’adresse IP en nom d’hôte
gethostbynamel() Obtenir la liste des adresses IP pour un nom d’hôte

Bases de données

PDO MySQL

Fonction Description
PDO::__construct() Connexion non-bloquante
PDO::prepare() Préparer une requête
PDO::exec() Exécuter une requête
PDOStatement::execute() Exécuter une requête préparée
PDOStatement::fetch() Récupérer les résultats

PDO PgSQL

Fonction Description
PDO::__construct() Connexion non-bloquante
PDO::prepare() Préparer une requête
PDO::exec() Exécuter une requête
PDOStatement::execute() Exécuter une requête préparée
PDOStatement::fetch() Récupérer les résultats

Pool de connexions PDO

Pool de connexions transparent pour PDO via l’intégration Async\Pool. Chaque coroutine reçoit sa propre connexion du pool avec gestion automatique du cycle de vie.

MySQLi

Fonction Description
mysqli_connect() Connexion non-bloquante
mysqli_query() Exécuter une requête
mysqli_prepare() Préparer une requête
mysqli_stmt_execute() Exécuter une requête préparée
mysqli_fetch_*() Récupérer les résultats

PostgreSQL (natif)

Fonction Description
pg_connect() Connexion non-bloquante
pg_query() Exécuter une requête
pg_prepare() Préparer une requête
pg_execute() Exécuter une requête préparée
pg_fetch_*() Récupérer les résultats

Chaque contexte async utilise une connexion séparée pour une concurrence sûre.


CURL

Fonction Description
curl_exec() Exécuter une requête
curl_multi_exec() Exécuter plusieurs requêtes
curl_multi_select() Attendre l’activité
curl_multi_getcontent() Obtenir le contenu
curl_setopt() Définir les options
curl_getinfo() Obtenir les informations de requête
curl_error() Obtenir l’erreur
curl_close() Fermer le handle

Sockets

Fonction Description
socket_create() Créer un socket
socket_create_pair() Créer une paire de sockets
socket_connect() Connecter
socket_accept() Accepter une connexion
socket_read() Lire les données
socket_write() Écrire les données
socket_send() Envoyer les données
socket_recv() Recevoir les données
socket_sendto() Envoyer à une adresse
socket_recvfrom() Recevoir d’une adresse
socket_bind() Lier à une adresse
socket_listen() Écouter
socket_select() Surveiller l’activité des sockets

E/S fichiers et flux

Fonction Description
fopen() Ouvrir un fichier
fclose() Fermer un fichier
fread() Lire depuis un fichier
fwrite() Écrire dans un fichier
fgets() Lire une ligne
fgetc() Lire un caractère
fgetcsv() Lire une ligne CSV
fputcsv() Écrire une ligne CSV
fseek() Définir la position
ftell() Obtenir la position
rewind() Réinitialiser la position
ftruncate() Tronquer le fichier
fflush() Vider les tampons
fscanf() Lecture formatée
file_get_contents() Lire le fichier entier
file_put_contents() Écrire le fichier entier
file() Lire le fichier dans un tableau
copy() Copier un fichier
tmpfile() Créer un fichier temporaire
readfile() Afficher un fichier
fpassthru() Afficher le reste du fichier
stream_get_contents() Lire le reste du flux
stream_copy_to_stream() Copier entre flux

Sockets de flux

Fonction Description
stream_socket_client() Créer une connexion client
stream_socket_server() Créer un socket serveur
stream_socket_accept() Accepter une connexion
stream_select() Surveiller l’activité des flux
stream_context_create() Créer un contexte async

Limitation : stream_select() avec les flux pipe (ex. de proc_open()) n’est pas supporté sous Windows. Sous Linux/macOS, cela fonctionne nativement via la boucle d’événements.


Exécution de processus

Fonction Description
proc_open() Ouvrir un processus avec pipes
proc_close() Fermer un processus
exec() Exécuter une commande externe
shell_exec() Exécuter une commande shell
system() Exécuter une commande système
passthru() Exécuter avec sortie directe

Minuteries et délais

Fonction Description
sleep() Délai en secondes
usleep() Délai en microsecondes
time_nanosleep() Délai en nanosecondes
time_sleep_until() Attendre jusqu’à un horodatage

Mise en tampon de sortie

Chaque coroutine reçoit un tampon de sortie isolé.

Fonction Description
ob_start() Démarrer la mise en tampon
ob_flush() Vider le tampon
ob_clean() Nettoyer le tampon
ob_get_contents() Obtenir le contenu du tampon
ob_end_clean() Terminer la mise en tampon

Pas encore supporté

Fonctions prévues pour implémentation ou pas encore adaptées.

DNS

Fonction Description
dns_check_record() / checkdnsrr() Vérifier un enregistrement DNS
dns_get_mx() / getmxrr() Obtenir les enregistrements MX
dns_get_record() Obtenir les enregistrements DNS

Bases de données

Extension Description
PDO ODBC Pilote ODBC
PDO Oracle Pilote Oracle
PDO SQLite Pilote SQLite
PDO Firebird Pilote Firebird
MongoDB Client MongoDB

Opérations sur fichiers (métadonnées)

Fonction Description
flock() Verrouillage de fichier
opendir() / readdir() / closedir() Parcours de répertoire
unlink() / rename() Suppression et renommage de fichiers
mkdir() / rmdir() Création et suppression de répertoires
stat() / lstat() Informations sur les fichiers
readlink() Lecture des liens symboliques

Remarque : Les opérations sur les métadonnées de fichiers sur disque local s’exécutent en microsecondes. Leur asynchronisation n’a de sens que pour les systèmes de fichiers réseau (NFS).


Et ensuite ?