對(duì)象和資源的持久化
在傳統(tǒng)的Web開(kāi)發(fā)中,PHP創(chuàng)建的對(duì)象、數(shù)據(jù)、資源等會(huì)在請(qǐng)求完畢后全部釋放,導(dǎo)致很難做到持久化。而在Workerman中可以輕松做到這些。
在Workerman中如果想在內(nèi)存中永久保存某些數(shù)據(jù)資源,可以將資源放到全局變量中或者類(lèi)的靜態(tài)成員中。
例如下面的代碼:
用一個(gè)全局變量$connection_count
保存一個(gè)當(dāng)前進(jìn)程的客戶端連接數(shù)。
<?php
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';
// 全局變量,保存當(dāng)前進(jìn)程的客戶端連接數(shù)
$connection_count = 0;
$worker = new Worker('tcp://0.0.0.0:1236');
$worker->onConnect = function(TcpConnection $connection)
{
// 有新的客戶端連接時(shí),連接數(shù)+1
global $connection_count;
++$connection_count;
echo "now connection_count=$connection_count\n";
};
$worker->onClose = function(TcpConnection $connection)
{
// 客戶端關(guān)閉時(shí),連接數(shù)-1
global $connection_count;
$connection_count--;
echo "now connection_count=$connection_count\n";
};
PHP變量作用域參見(jiàn):
https://php.net/manual/zh/language.variables.scope.php