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