การถือครองวัตถุและทรัพยากร
ในการพัฒนาเว็บแบบดั้งเดิม วัตถุ เช่น ข้อมูล และทรัพยากรที่สร้างขึ้นโดย PHP จะถูกปล่อยให้เสร็จสิ้นการขอใช้หลังจากการร้องขอ ซึ่งทำให้เกิดความยากลำบากในการถือครองอย่างยั่งยืน แต่ใน Workerman สามารถทำได้อย่างง่ายดาย
ใน Workerman หากต้องการที่จะถือครองข้อมูลทรัพยากรบางอย่างไว้ในหน่วยความจำได้โดยการใส่ทรัพยากรไว้ในตัวแปร global หรือสมาชิกสถิตของคลาส
ตัวอย่างโค้ดด้านล่างนี้:
ใช้ตัวแปร global $connection_count
เพื่อเก็บจำนวนการเชื่อมต่อของไคลเอนท์สำหรับกระบวนการปัจจุบัน
<?php
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';
// ตัวแปร global เพื่อเก็บจำนวนการเชื่อมต่อของไคลเอนท์สำหรับกระบวนการปัจจุบัน
$connection_count = 0;
$worker = new Worker('tcp://0.0.0.0:1236');
$worker->onConnect = function(TcpConnection $connection)
{
// เมื่อมีการเชื่อมต่อของไคลเอนท์ใหม่ เพิ่มจำนวนการเชื่อมต่อไปที่ 1
global $connection_count;
++$connection_count;
echo "now connection_count=$connection_count\n";
};
$worker->onClose = function(TcpConnection $connection)
{
// เมื่อไคลเอนท์ปิดการเชื่อมต่อ ลดจำนวนการเชื่อมต่อลง 1
global $connection_count;
$connection_count--;
echo "now connection_count=$connection_count\n";
};