# Swoole

# Introduction

Swoole est un moteur de communication réseau parallèle basé sur un modèle asynchrone piloté par événements et coroutines, écrit en C++. Il fournit un support pour les coroutines ainsi qu’une programmation réseau haute performance pour PHP. Il propose divers modules client et serveur pour plusieurs protocoles de communication, ce qui permet d’implémenter facilement des services TCP/UDP, des services Web haute performance, WebSocket, IoT, communication en temps réel, jeux, microservices, etc., dépassant ainsi les limites traditionnelles de PHP dans le domaine du web classique. Pour commencer, veuillez consulter la » documentation de Swoole.

> Note: Cette extension n'est pas disponible sur les plates-formes Windows.

- Installation/Configuration
  - Pré-requis
  - Installation
  - Configuration à l'exécution
- Constantes pré-définies
- Fonctions de Swoole
  - swoole_async_dns_lookup — Cherche de manière asynchrone et non bloquante l'adresse IP d'un hôte
  - swoole_async_read — Lit un flux de fichier de manière asynchrone
  - swoole_async_readfile — Lit un fichier de manière asynchrone
  - swoole_async_set — Met à jour les options d'E/S asynchrones
  - swoole_async_write — Ecrit des données dans un flux de fichier de manière asynchrone
  - swoole_async_writefile — Ecrit des données dans un fichier de manière asynchrone
  - swoole_clear_error — Enlève les erreurs dans le socket ou le dernier code d'erreur
  - swoole_client_select — Renvoie la description du fichier prête à être lue/écrite ou une erreur
  - swoole_cpu_num — Renvoie le nombre de CPU
  - swoole_errno — Renvoie le code d'erreur du dernier appel système
  - swoole_error_log — Sort les messages d'erreur dans le journal
  - swoole_event_add — Ajoute une nouvelle fonction de rappel d'un socket dans l'EventLoop
  - swoole_event_defer — Ajoute une fonction de rappel à la prochaine boucle d'événement
  - swoole_event_del — Supprime toutes les fonctions de rappel d'événements d'un socket
  - swoole_event_exit — Quitte la boucle d'événements, uniquement disponible côté client
  - swoole_event_set — Met à jour les fonctions de rappel d'événements d'un socket
  - swoole_event_wait — Commence la boucle d'événements
  - swoole_event_write — Ecrit des données dans un socket
  - swoole_get_local_ip — Renvoie les adresses IP IPv4 de chaque NIC sur la machine
  - swoole_last_error — Renvoie le dernier message d'erreur
  - swoole_load_module — Charge une extension swoole
  - swoole_select — Sélectionne les descriptions de fichiers prêtes à lire/écrire ou en erreur dans la boucle d'événements
  - swoole_set_process_name — Définit le nom du processus
  - swoole_strerror — Convertit l'Errno en messages d'erreur
  - swoole_timer_after — Déclenche une fonction de rappel unique dans le futur
  - swoole_timer_exists — Renvoie si une fonction de rappel de minuterie existe
  - swoole_timer_tick — Déclenche une fonction de rappel de minuterie par intervalle de temps
  - swoole_version — Renvoie la version de Swoole
- Swoole\Async — La classe Swoole\Async
  - Swoole\Async::dnsLookup — Cherche de manière asynchrone et non bloquante l'adresse IP d'un hôte.
  - Swoole\Async::read — Lit de manière asynchrone un flux de fichier.
  - Swoole\Async::readFile — Lit un fichier de manière asynchrone.
  - Swoole\Async::set — Met à jour les options d'E/S asynchrone.
  - Swoole\Async::write — Écrit de manière asynchrone des données dans un flux de fichier.
  - Swoole\Async::writeFile — Description
- Swoole\Atomic — La classe Swoole\Atomic
  - Swoole\Atomic::add — Ajoute un nombre à la valeur de l'objet atomique.
  - Swoole\Atomic::cmpset — Compare et définit la valeur de l'objet atomique.
  - Swoole\Atomic::__construct — Construit un nouvel objet atomique Swoole.
  - Swoole\Atomic::get — Renvoie la valeur actuelle de l'objet atomique.
  - Swoole\Atomic::set — Définit une nouvelle valeur à l'objet atomique.
  - Swoole\Atomic::sub — Soustrait un nombre à la valeur de l'objet atomique.
- Swoole\Buffer — La classe Swoole\Buffer
  - Swoole\Buffer::append — Ajoute la chaîne ou les données binaires à la fin du tampon mémoire et retourne la nouvelle taille de la mémoire allouée.
  - Swoole\Buffer::clear — Réinitialise le tampon mémoire.
  - Swoole\Buffer::__construct — Allocation de blocs de mémoire de taille fixe.
  - Swoole\Buffer::__destruct — Détruit le tampon mémoire Swoole.
  - Swoole\Buffer::expand — Etend la taille du tampon mémoire.
  - Swoole\Buffer::read — Lit les données du tampon mémoire en fonction du décalage et de la longueur.
  - Swoole\Buffer::recycle — Libère la mémoire à l'OS qui n'est pas utilisée par le tampon mémoire.
  - Swoole\Buffer::substr — Lit les données du tampon mémoire en fonction du décalage et de la longueur. Ou supprime les données du tampon mémoire.
  - Swoole\Buffer::__toString — Renvoie la valeur de la chaîne du tampon mémoire.
  - Swoole\Buffer::write — Ecrit des données dans le tampon mémoire. La mémoire allouée pour le tampon ne sera pas modifiée.
- Swoole\Channel — La classe Swoole\Channel
  - Swoole\Channel::__construct — Construit un canal Swoole
  - Swoole\Channel::__destruct — Détruit un canal Swoole.
  - Swoole\Channel::pop — Lit et extrait des données du canal swoole.
  - Swoole\Channel::push — Ecrit et pousse des données dans le canal Swoole.
  - Swoole\Channel::stats — Renvoie les statistiques du canal Swoole.
- Swoole\Client — La classe Swoole\Client
  - Swoole\Client::close — Ferme la connexion établie.
  - Swoole\Client::connect — Connecte au port TCP ou UDP distant.
  - Swoole\Client::__construct — Crée un client TCP/UDP synchrone ou asynchrone Swoole, avec ou sans SSL.
  - Swoole\Client::__destruct — Détruit le client Swoole.
  - Swoole\Client::getpeername — Renvoie le nom du socket distant de la connexion.
  - Swoole\Client::getsockname — Renvoie le nom du socket local de la connexion.
  - Swoole\Client::isConnected — Vérifie si la connexion est établie.
  - Swoole\Client::on — Ajoute des fonctions de rappel déclenchées par des événements.
  - Swoole\Client::pause — Met en pause la réception de données.
  - Swoole\Client::pipe — Redirige les données vers un autre descripteur de fichier.
  - Swoole\Client::recv — Reçoit des données du socket distant.
  - Swoole\Client::resume — Reprend la réception de données.
  - Swoole\Client::send — Envoie des données au socket TCP distant.
  - Swoole\Client::sendfile — Envoie un fichier au socket TCP distant.
  - Swoole\Client::sendto — Envoie des données à l'adresse UDP distante.
  - Swoole\Client::set — Définit les paramètres du client Swoole avant que la connexion ne soit établie.
  - Swoole\Client::sleep — Supprime le client TCP de la boucle d'événements système.
  - Swoole\Client::wakeup — Ajoute le client TCP au cycle d'événements du système.
- Swoole\Connection\Iterator — La classe Swoole\Connection\Iterator
  - Swoole\Connection\Iterator::count — Compte les connexions.
  - Swoole\Connection\Iterator::current — Renvoie l'entrée de connexion actuelle.
  - Swoole\Connection\Iterator::key — Renvoie la clé de la connexion actuelle.
  - Swoole\Connection\Iterator::next — Déplace vers la connexion suivante.
  - Swoole\Connection\Iterator::offsetExists — Vérifie si une position existe.
  - Swoole\Connection\Iterator::offsetGet — Position à récupérer.
  - Swoole\Connection\Iterator::offsetSet — Assigne une connexion à la position spécifiée.
  - Swoole\Connection\Iterator::offsetUnset — Supprime une position.
  - Swoole\Connection\Iterator::rewind — Ré-initialise l'itérateur.
  - Swoole\Connection\Iterator::valid — Vérifie si la position actuelle est valide.
- Swoole\Coroutine — La classe Swoole\Coroutine
  - Swoole\Coroutine::call_user_func — Appelle une fonction de rappel donnée par le premier paramètre
  - Swoole\Coroutine::call_user_func_array — Appelle une fonction de rappel avec un tableau de paramètres
  - Swoole\Coroutine::cli_wait — Description
  - Swoole\Coroutine::create — Description
  - Swoole\Coroutine::getuid — Description
  - Swoole\Coroutine::resume — Description
  - Swoole\Coroutine::suspend — Description
- Swoole\Coroutine\Lock — La classe Swoole\Coroutine\Lock
  - Swoole\Coroutine\Lock::__construct — Construit un nouveau verrou de coroutine
  - Swoole\Coroutine\Lock::lock — Acquiert le verrou, en bloquant si nécessaire
  - Swoole\Coroutine\Lock::trylock — Essaie d'acquérir le verrou sans bloquer
  - Swoole\Coroutine\Lock::unlock — Relâche le verrou
- Swoole\Event — La classe Swoole\Event
  - Swoole\Event::add — Ajoute une nouvelle fonction de rappel d'un socket dans la boucle d'événements.
  - Swoole\Event::defer — Ajoute une fonction de rappel à la prochaine boucle d'événements.
  - Swoole\Event::del — Supprime toutes les fonctions de rappel d'événements d'un socket.
  - Swoole\Event::exit — Quitte la boucle d'événements, uniquement disponible côté client.
  - Swoole\Event::set — Met à jour les fonctions de rappel d'événements d'un socket.
  - Swoole\Event::wait — Description
  - Swoole\Event::write — Ecrit des données dans le socket.
- Swoole\Exception — La classe Swoole\Exception
- Swoole\Http\Client — La classe Swoole\Http\Client
  - Swoole\Http\Client::addFile — Ajoute un fichier au formulaire de publication.
  - Swoole\Http\Client::close — Ferme la connexion http.
  - Swoole\Http\Client::__construct — Construit le client HTTP asynchrone.
  - Swoole\Http\Client::__destruct — Détruit le client HTTP.
  - Swoole\Http\Client::download — Télécharge un fichier depuis le serveur distant.
  - Swoole\Http\Client::execute — Envoie la requête HTTP après avoir défini les paramètres.
  - Swoole\Http\Client::get — Envoie une requête HTTP GET au serveur distant.
  - Swoole\Http\Client::isConnected — Vérifie si la connexion HTTP est établie.
  - Swoole\Http\Client::on — Enregistre une fonction de rappel par nom d'événement.
  - Swoole\Http\Client::post — Envoie une requête HTTP POST au serveur distant.
  - Swoole\Http\Client::push — Ajoute des données au client websocket.
  - Swoole\Http\Client::set — Met à jour les paramètres du client HTTP.
  - Swoole\Http\Client::setCookies — Définit les cookies de la requête HTTP.
  - Swoole\Http\Client::setData — Définit les données du corps de la requête HTTP.
  - Swoole\Http\Client::setHeaders — Définit les en-têtes de la requête HTTP.
  - Swoole\Http\Client::setMethod — Définit la méthode de requête HTTP.
  - Swoole\Http\Client::upgrade — Met à niveau vers le protocole websocket.
- Swoole\Http\Request — La classe Swoole\Http\Request
  - Swoole\Http\Request::__destruct — Détruit la requête HTTP.
  - Swoole\Http\Request::rawcontent — Renvoie le corps brut de la requête HTTP.
- Swoole\Http\Response — La classe Swoole\Http\Response
  - Swoole\Http\Response::cookie — Définit les cookies de la réponse HTTP.
  - Swoole\Http\Response::__destruct — Détruit la réponse HTTP.
  - Swoole\Http\Response::end — Envoie les données pour la requête HTTP et termine la réponse.
  - Swoole\Http\Response::gzip — Active la compression gzip du contenu de la réponse.
  - Swoole\Http\Response::header — Définit les en-têtes de réponse HTTP.
  - Swoole\Http\Response::initHeader — Initialise l'en-tête de réponse HTTP.
  - Swoole\Http\Response::rawcookie — Définit les cookies bruts de la réponse HTTP.
  - Swoole\Http\Response::sendfile — Envoie un fichier via la réponse HTTP.
  - Swoole\Http\Response::status — Définit le code d'état de la réponse HTTP.
  - Swoole\Http\Response::write — Ajoute le contenu du corps HTTP à la réponse HTTP.
- Swoole\Http\Server — La classe Swoole\Http\Server
  - Swoole\Http\Server::on — Lie une fonction de rappel au serveur HTTP par nom d'événement.
  - Swoole\Http\Server::start — Lance le serveur HTTP swoole.
- Swoole\Lock — La classe Swoole\Lock
  - Swoole\Lock::__construct — Construit un verrou de mémoire.
  - Swoole\Lock::__destruct — Détruit un verrou de mémoire Swoole.
  - Swoole\Lock::lock — Essaie d'acquérir le verrou. Il bloquera si le verrou n'est pas disponible.
  - Swoole\Lock::lock_read — Verrouille un verrou en lecture-écriture pour la lecture.
  - Swoole\Lock::trylock — Essaie d'acquérir le verrou et retourne immédiatement même si le verrou n'est pas disponible.
  - Swoole\Lock::trylock_read — Essaie de verrouiller un verrou en lecture-écriture pour la lecture et retourne immédiatement même si le verrou n'est pas disponible.
  - Swoole\Lock::unlock — Libère le verrou.
- Swoole\Mmap — La classe Swoole\Mmap
  - Swoole\Mmap::open — Mappe un fichier en mémoire et retourne la ressource de flux qui peut être utilisée par les opérations de flux PHP.
- Swoole\MySQL — La classe Swoole\MySQL
  - Swoole\MySQL::close — Ferme la connexion MySQL asynchrone.
  - Swoole\MySQL::connect — Connecte au serveur MySQL distant.
  - Swoole\MySQL::__construct — Construit un client MySQL asynchrone.
  - Swoole\MySQL::__destruct — Détruit le client MySQL asynchrone.
  - Swoole\MySQL::getBuffer — Description
  - Swoole\MySQL::on — Enregistre une fonction de rappel basée sur le nom de l'événement.
  - Swoole\MySQL::query — Exécute la requête SQL.
- Swoole\MySQL\Exception — La classe Swoole\MySQL\Exception
- Swoole\Process — La classe Swoole\Process
  - Swoole\Process::alarm — Minuteur de haute précision qui déclenche un signal à intervalle fixe.
  - Swoole\Process::close — Ferme le tube vers le processus enfant.
  - Swoole\Process::__construct — Construit un processus.
  - Swoole\Process::daemon — Change le processus en un processus daemon.
  - Swoole\Process::__destruct — Détruit le processus.
  - Swoole\Process::exec — Exécute une commande système.
  - Swoole\Process::exit — Arrête les processus enfants.
  - Swoole\Process::freeQueue — Détruit la file de messages créée par swoole_process::useQueue.
  - Swoole\Process::kill — Envoie un signal au processus enfant.
  - Swoole\Process::name — Définit le nom du processus.
  - Swoole\Process::pop — Lit et extrait des données de la file de messages.
  - Swoole\Process::push — Ecrit et pousse des données dans la file de messages.
  - Swoole\Process::read — Lit les données envoyées au processus.
  - Swoole\Process::signal — Envoie un signal aux processus enfants.
  - Swoole\Process::start — Démarre le processus.
  - Swoole\Process::statQueue — Renvoie les statistiques de la file de messages utilisée comme méthode de communication entre les processus.
  - Swoole\Process::useQueue — Créer une file de messages comme méthode de communication entre le processus parent et les processus enfants.
  - Swoole\Process::wait — Attend les événements des processus enfants.
  - Swoole\Process::write — Ecrit des données dans le tube et communique avec le processus parent ou les processus enfants.
- Swoole\Redis\Server — La classe Swoole\Redis\Server
  - Swoole\Redis\Server::format — Description
  - Swoole\Redis\Server::setHandler — Description
  - Swoole\Redis\Server::start — Description
- Swoole\Runtime — La classe Swoole\Runtime
  - Swoole\Runtime::enableCoroutine — Active la coroutine pour les fonctions spécifiées
  - Swoole\Runtime::getHookFlags — Renvoie les drapeaux du crochet actuel
  - Swoole\Runtime::setHookFlags — Définit les drapeaux de crochet pour la coroutine
- Swoole\Serialize — La classe Swoole\Serialize
  - Swoole\Serialize::pack — Sérialise les données.
  - Swoole\Serialize::unpack — Désérialise les données.
- Swoole\Server — La classe Swoole\Server
  - Swoole\Server::addlistener — Ajoute un nouvel observateur au serveur.
  - Swoole\Server::addProcess — Ajoute un swoole_process défini par l'utilisateur au serveur.
  - Swoole\Server::after — Déclenche une fonction de rappel après une période de temps.
  - Swoole\Server::bind — Lie la connexion à un identifiant d'utilisateur défini par l'utilisateur.
  - Swoole\Server::clearTimer — Détruit et arrête un minuteur.
  - Swoole\Server::close — Ferme une connexion avec le client.
  - Swoole\Server::confirm — Vérifie l'état de la connexion.
  - Swoole\Server::connection_info — Renvoie les informations de connexion par la description du fichier.
  - Swoole\Server::connection_list — Renvoie toutes les connexions établies.
  - Swoole\Server::__construct — Construit un serveur Swoole.
  - Swoole\Server::defer — Décale l'exécution de la fonction de rappel à la fin de la boucle d'événements actuelle.
  - Swoole\Server::exist — Vérifie si la connexion existe.
  - Swoole\Server::finish — Utilisé dans le processus de tâche pour envoyer le résultat au processus de travail lorsque la tâche est terminée.
  - Swoole\Server::getClientInfo — Renvoie les informations de connexion par la description du fichier.
  - Swoole\Server::getClientList — Renvoie toutes les connexions établies.
  - Swoole\Server::getLastError — Renvoie le code d'erreur de la dernière erreur.
  - Swoole\Server::heartbeat — Vérifie toutes les connexions sur le serveur.
  - Swoole\Server::listen — Ecoute sur l'IP et le port donnés, type de socket.
  - Swoole\Server::on — Enregistre une fonction de rappel par nom d'événement.
  - Swoole\Server::pause — Arrête de recevoir des données de la connexion.
  - Swoole\Server::protect — Met la connexion en mode protégé.
  - Swoole\Server::reload — Relance tous les processus de travail.
  - Swoole\Server::resume — Lance la réception de données depuis la connexion.
  - Swoole\Server::send — Envoie des données au client.
  - Swoole\Server::sendfile — Envoie un fichier à la connexion.
  - Swoole\Server::sendMessage — Envoie un message aux processus de travail par ID.
  - Swoole\Server::sendto — Envoie des données à l'adresse UDP distante.
  - Swoole\Server::sendwait — Envoie des données au socket distant de manière bloquante.
  - Swoole\Server::set — Définit les paramètres d'exécution du serveur swoole.
  - Swoole\Server::shutdown — Arrête le processus du serveur maître, cette fonction peut être appelée dans les processus de travail.
  - Swoole\Server::start — Démarre le serveur Swoole.
  - Swoole\Server::stats — Renvoie les statistiques du serveur Swoole.
  - Swoole\Server::stop — Arrête le serveur Swoole.
  - Swoole\Server::task — Envoie des données aux processus de travail de tâche.
  - Swoole\Server::taskwait — Envoie des données aux processus de travail de tâche de manière bloquante.
  - Swoole\Server::taskWaitMulti — Exécute plusieurs tâches en parallèle.
  - Swoole\Server::tick — Répète une fonction donnée à chaque intervalle de temps donné.
- Swoole\Table — La classe Swoole\Table
  - Swoole\Table::column — Définit le type de données et la taille des colonnes.
  - Swoole\Table::__construct — Construit une table de mémoire Swoole de taille fixe.
  - Swoole\Table::count — Compte les lignes dans la table, ou compte tous les éléments dans la table si $mode = 1.
  - Swoole\Table::create — Créer la table de mémoire swoole.
  - Swoole\Table::current — Renvoie la ligne actuelle.
  - Swoole\Table::decr — Décrémente la valeur dans la table Swoole par $key et $column.
  - Swoole\Table::del — Supprime une ligne dans la table Swoole par $key.
  - Swoole\Table::destroy — Détruit la table Swoole.
  - Swoole\Table::exist — Vérifie si une ligne existe par $row_key.
  - Swoole\Table::get — Renvoie la valeur dans la table Swoole par $key et $field.
  - Swoole\Table::incr — Incrémente la valeur Swoole par $key et $column.
  - Swoole\Table::key — Renvoie la clé de la ligne actuelle.
  - Swoole\Table::next — Avance l'itérateur sur la prochaine ligne
  - Swoole\Table::rewind — Ré-initialise l'itérateur.
  - Swoole\Table::set — Met à jour une ligne de la table par $key.
  - Swoole\Table::valid — Vérifie si la ligne actuelle est valide.
- Swoole\Timer — La classe Swoole\Timer
  - Swoole\Timer::after — Déclenche une fonction de rappel après une période de temps.
  - Swoole\Timer::clear — Supprime un minuteur par ID de minuteur.
  - Swoole\Timer::exists — Vérifie si un minuteur existe.
  - Swoole\Timer::tick — Répète une fonction donnée à chaque intervalle de temps donné.
- Swoole\WebSocket\Frame — La classe Swoole\WebSocket\Frame
- Swoole\WebSocket\Server — La classe Swoole\WebSocket\Server
  - Swoole\WebSocket\Server::exist — Vérifie si le descripteur de fichier existe.
  - Swoole\WebSocket\Server::on — Enregistre la fonction de rappel de l'événement
  - Swoole\WebSocket\Server::pack — Renvoie un paquet de données binaires à envoyer dans une seule trame.
  - Swoole\WebSocket\Server::push — Pousse les données vers le client distant.
  - Swoole\WebSocket\Server::unpack — Décompresse les données binaires reçues du client.

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open