Компонент совместного использования переменных GlobalData

(Требуется версия Workerman >= 3.3.0)

Исходный код: https://github.com/walkor/GlobalData

Внимание

GlobalData требует версию Workerman >= 3.3.0

Установка

composer require workerman/globaldata

Принцип работы

Используя магические методы PHP __set __get __isset __unset, происходит взаимодействие с сервером GlobalData. Фактическое хранилище переменных находится на сервере GlobalData. Например, когда вы задаете несуществующее свойство для класса клиента, срабатывает магический метод __set, который отправляет запрос на сервер GlobalData для сохранения переменной. При доступе к несуществующей переменной класса клиента срабатывает метод __get, клиент отправляет запрос на сервер GlobalData для чтения этого значения, что позволяет завершить совместное использование переменных между процессами.

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

// Подключение к серверу Global Data
$global = new GlobalData\Client('127.0.0.1:2207');

// Срабатывание $global->__isset('somedata') для проверки, сохранил ли сервер значение с ключом somedata
isset($global->somedata);

// Срабатывание $global->__set('somedata',array(1,2,3)), уведомление сервера о том, чтобы сохранить значение array(1,2,3) для somedata
$global->somedata = array(1,2,3);

// Срабатывание $global->__get('somedata'), для запроса значения somedata с сервера
var_export($global->somedata);

// Срабатывание $global->__unset('somedata'), уведомление сервера о том, чтобы удалить somedata и соответствующее значение
unset($global->somedata);