Componente de Compartilhamento de Variáveis GlobalData
(Requer Workerman versão >= 3.3.0)
Código fonte: https://github.com/walkor/GlobalData
Nota
GlobalData requer Workerman versão >= 3.3.0
Instalação
composer require workerman/globaldata
Princípio
Usando os métodos mágicos de PHP __set __get __isset __unset
para acionar a comunicação com o servidor GlobalData, as variáveis reais são armazenadas no servidor GlobalData. Por exemplo, ao definir um atributo inexistente em uma classe de cliente, o método mágico __set
é acionado, onde a classe do cliente envia uma solicitação para o servidor GlobalData para armazenar uma variável. Quando se acessa uma variável inexistente na classe do cliente, o método __get
da classe é acionado e o cliente envia uma solicitação para o servidor GlobalData para ler esse valor, completando assim o compartilhamento de variáveis entre processos.
require_once __DIR__ . '/vendor/autoload.php';
// Conectar ao servidor GlobalData
$global = new GlobalData\Client('127.0.0.1:2207');
// Acionar $global->__isset('somedata') para verificar se o servidor armazena um valor com a chave somedata
isset($global->somedata);
// Acionar $global->__set('somedata',array(1,2,3)) para notificar o servidor armazenar o valor correspondente a somedata como array(1,2,3)
$global->somedata = array(1,2,3);
// Acionar $global->__get('somedata') para consultar o valor correspondente a somedata no servidor
var_export($global->somedata);
// Acionar $global->__unset('somedata') para notificar o servidor a excluir somedata e o valor correspondente
unset($global->somedata);