Persistenza di Oggetti e Risorse
Nello sviluppo web tradizionale, gli oggetti, i dati e le risorse creati da PHP vengono completamente liberati al termine della richiesta, il che rende difficile la persistenza. In Workerman, invece, è possibile gestire facilmente questi aspetti.
In Workerman, se si desidera mantenere permanentemente in memoria alcune risorse di dati, è possibile memorizzare le risorse in una variabile globale o in un membro statico della classe.
Per esempio, nel codice seguente:
Si utilizza una variabile globale $connection_count per memorizzare il numero di connessioni dei client nell'attuale processo.
<?php
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';
// Variabile globale che salva il numero di connessioni dei client nell'attuale processo
$connection_count = 0;
$worker = new Worker('tcp://0.0.0.0:1236');
$worker->onConnect = function(TcpConnection $connection)
{
// Quando si connette un nuovo client, aumentare il conteggio delle connessioni di 1
global $connection_count;
++$connection_count;
echo "now connection_count=$connection_count\n";
};
$worker->onClose = function(TcpConnection $connection)
{
// Quando il client si disconnette, diminuire il conteggio delle connessioni di 1
global $connection_count;
$connection_count--;
echo "now connection_count=$connection_count\n";
};