Компонент 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';

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

// Триггер для $global->__isset('somedata') - запрос к серверу о наличии значения с ключом somedata
isset($global->somedata);

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

// Триггер для $global->__get('somedata') - запрос к серверу для получения значения, соответствующего somedata
var_export($global->somedata);

// Триггер для $global->__unset('somedata') - уведомление сервера о удалении somedata и соответствующего значения
unset($global->somedata);