Nesnelerin ve Kaynakların Kalıcılığı
Geleneksel web geliştirmede, PHP tarafından oluşturulan nesneler, veriler, kaynaklar vb., istek tamamlandıktan sonra tamamen serbest bırakılır, bu da kalıcılığı sağlamakta zorluk çıkarır. Ancak Workerman ile bunları kolayca gerçekleştirebilirsiniz.
Workerman içerisinde bellekte bazı veri kaynaklarını kalıcı olarak saklamak istiyorsanız, kaynakları global değişkenlerde veya sınıfın statik üyelerinde saklayabilirsiniz.
Örneğin aşağıdaki kod:
Bir global değişken $connection_count kullanarak mevcut işlemdeki istemci bağlantı sayısını saklamakta.
<?php
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';
// Global değişken, mevcut işlemin istemci bağlantı sayısını saklar
$connection_count = 0;
$worker = new Worker('tcp://0.0.0.0:1236');
$worker->onConnect = function(TcpConnection $connection)
{
// Yeni bir istemci bağlantısı olduğunda, bağlantı sayısı +1
global $connection_count;
++$connection_count;
echo "şu an connection_count=$connection_count\n";
};
$worker->onClose = function(TcpConnection $connection)
{
// İstemci kapandığında, bağlantı sayısı -1
global $connection_count;
$connection_count--;
echo "şu an connection_count=$connection_count\n";
};