Tính bền vững của đối tượng và tài nguyên

Trong phát triển Web truyền thống, các đối tượng, dữ liệu, tài nguyên được tạo ra bởi PHP sẽ bị giải phóng hoàn toàn sau khi yêu cầu hoàn tất, dẫn đến rất khó khăn để đạt được tính bền vững. Tuy nhiên, trong Workerman, điều này có thể được thực hiện một cách dễ dàng.

Trong Workerman, nếu bạn muốn lưu trữ vĩnh viễn một số tài nguyên dữ liệu trong bộ nhớ, bạn có thể đặt tài nguyên vào biến toàn cục hoặc thành phần tĩnh của lớp.

Ví dụ mã dưới đây:

Sử dụng một biến toàn cục $connection_count để lưu trữ số lượng kết nối khách hàng hiện tại của tiến trình.

<?php
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';

// Biến toàn cục, lưu trữ số lượng kết nối khách hàng hiện tại của tiến trình
$connection_count = 0;

$worker = new Worker('tcp://0.0.0.0:1236');

$worker->onConnect = function(TcpConnection $connection)
{
    // Khi có kết nối khách hàng mới, số lượng kết nối +1
    global $connection_count;
    ++$connection_count;
    echo "now connection_count=$connection_count\n";
};

$worker->onClose = function(TcpConnection $connection)
{
    // Khi khách hàng đóng kết nối, số lượng kết nối -1
    global $connection_count;
    $connection_count--;
    echo "now connection_count=$connection_count\n";
};

Xem thêm về phạm vi biến trong PHP:

https://php.net/manual/zh/language.variables.scope.php