Thành phần chia sẻ biến toàn cầu GlobalData

Ứng dụng yêu cầu phiên bản Workerman >= 3.3.0

Đường dẫn mã nguồn: https://github.com/walkor/GlobalData

Lưu ý

GlobalData yêu cầu phiên bản Workerman >= 3.3.0

Cài đặt

composer require workerman/globaldata

Nguyên lý

Sử dụng phương thức ma thuật __set __get __isset __unset của PHP để giao tiếp với phía server của GlobalData, thực tế biến được lưu trữ ở phía server của GlobalData. Ví dụ khi một thuộc tính không tồn tại được thiết lập cho một đối tượng client, phương thức ma thuật __set sẽ được kích hoạt và đối tượng client sẽ gửi yêu cầu đến phía server của GlobalData để lưu trữ một biến. Khi truy cập một biến không tồn tại của đối tượng client, phương thức __get của lớp sẽ được kích hoạt và đối tượng client sẽ gửi yêu cầu đến phía server của GlobalData để đọc giá trị này, từ đó hoàn tất việc chia sẻ biến giữa các tiến trình.

require_once __DIR__ . '/vendor/autoload.php';

// Kết nối với server Global Data
$global = new GlobalData\Client('127.0.0.1:2207');

// Kích hoạt $global->__isset('somedata') để kiểm tra xem server có lưu trữ giá trị nào với key là somedata hay không
isset($global->somedata);

// Kích hoạt $global->__set('somedata',array(1,2,3)) để thông báo cho server lưu trữ giá trị tương ứng với somedata là mảng(1,2,3)
$global->somedata = array(1,2,3);

// Kích hoạt $global->__get('somedata') để truy vấn giá trị tương ứng với somedata từ server
var_export($global->somedata);

// Kích hoạt $global->__unset('somedata'), thông báo server xóa bỏ somedata và giá trị tương ứng
unset($global->somedata);