การเก็บรักษาวัตถุและทรัพยากร
ในการพัฒนาเว็บแบบดั้งเดิม วัตถุ ข้อมูล และทรัพยากรที่สร้างขึ้นโดย 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 "now connection_count=$connection_count\n";
};
$worker->onClose = function(TcpConnection $connection)
{
// เมื่อไคลเอนต์ปิดการเชื่อมต่อ จำนวนการเชื่อมต่อจะลดลง 1
global $connection_count;
$connection_count--;
echo "now connection_count=$connection_count\n";
};