অবজেক্ট এবং রিসোর্সের স্থায়ীকরণ
প্রথাগত ওয়েব ডেভেলপমেন্টে, PHP দ্বারা তৈরি অবজেক্ট, ডেটা, রিসোর্স ইত্যাদি অনুরোধ শেষ হওয়ার পরে সম্পূর্ণভাবে মুক্ত করা হয়, যার ফলে স্থায়ীকরণ করা কঠিন হয়ে পড়ে। তবে Workerman-এ এগুলো সহজে করা যায়।
Workerman-এ যদি কিছু ডেটা রিসোর্স মেমরিতে স্থায়ীভাবে সংরক্ষণ করতে চান তবে আপনি রিসোর্সটিকে বৈশ্বিক পরিবর্তক বা ক্লাসের স্ট্যাটিক সদস্যের মধ্যে রাখতে পারেন।
যেমন নিচের কোডটি:
একটি বৈশ্বিক পরিবর্তক $connection_count এর মাধ্যমে বর্তমান প্রক্রিয়ার ক্লায়েন্ট সংযোগের সংখ্যা সংরক্ষণ করা হয়।
<?php
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';
// বৈশ্বিক পরিবর্তক, বর্তমান প্রক্রিয়ার ক্লায়েন্ট সংযোগের সংখ্যা সংরক্ষণ করে
$connection_count = 0;
$worker = new Worker('tcp://0.0.0.0:1236');
$worker->onConnect = function(TcpConnection $connection)
{
// নতুন ক্লায়েন্ট সংযোগ হলে, সংযোগের সংখ্যা +1
global $connection_count;
++$connection_count;
echo "বর্তমানে connection_count=$connection_count\n";
};
$worker->onClose = function(TcpConnection $connection)
{
// ক্লায়েন্ট বন্ধ হলে, সংযোগের সংখ্যা -1
global $connection_count;
$connection_count--;
echo "বর্তমানে connection_count=$connection_count\n";
};