Компонент совместного использования переменных 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);