Persistance des objets et des ressources

Dans le développement Web traditionnel, les objets, données et ressources créés par PHP sont tous libérés après la fin de la requête, ce qui rend difficile leur persistance. Cependant, avec Workerman, cela peut être facilement réalisé.

Dans Workerman, si vous souhaitez conserver certaines ressources de données en mémoire de manière permanente, vous pouvez placer les ressources dans des variables globales ou dans les membres statiques de classes.

Par exemple, le code suivant :

Utilise une variable globale $connection_count pour stocker le nombre de connexions clients dans le processus actuel.

<?php
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';

// Variable globale, sauvegarde le nombre de connexions clients dans le processus actuel
$connection_count = 0;

$worker = new Worker('tcp://0.0.0.0:1236');

$worker->onConnect = function(TcpConnection $connection)
{
    // Lorsque de nouvelles connexions clients sont établies, incrémentez le compteur
    global $connection_count;
    ++$connection_count;
    echo "now connection_count=$connection_count\n";
};

$worker->onClose = function(TcpConnection $connection)
{
    // Lorsque le client se déconnecte, décrementez le compteur
    global $connection_count;
    $connection_count--;
    echo "now connection_count=$connection_count\n";
};

Pour en savoir plus sur la portée des variables PHP :

https://php.net/manual/fr/language.variables.scope.php