GlobalData Variablen-Sharing-Komponente
(Erfordert Workerman Version >= 3.3.0)
Quellcode-Adresse: https://github.com/walkor/GlobalData
Hinweis
GlobalData benötigt Workerman Version >= 3.3.0
Installation
composer require workerman/globaldata
Prinzip
Die magischen Methoden in PHP __set __get __isset __unset werden verwendet, um mit dem GlobalData-Server zu kommunizieren. Die tatsächlichen Variablen werden auf dem GlobalData-Server gespeichert. Zum Beispiel wird beim Setzen einer nicht existierenden Eigenschaft in der Client-Klasse die Methode __set ausgelöst, die eine Anfrage an den GlobalData-Server sendet, um eine Variable zu speichern. Wenn auf eine nicht existierende Variable in der Client-Klasse zugegriffen wird, wird die Methode __get der Klasse ausgelöst, und der Client sendet eine Anfrage an den GlobalData-Server, um diesen Wert abzurufen, wodurch der interprozessuale Variablen-Sharing abgeschlossen wird.
require_once __DIR__ . '/vendor/autoload.php';
// Verbindung zum Global Data Server herstellen
$global = new GlobalData\Client('127.0.0.1:2207');
// Auslösen von $global->__isset('somedata'), um zu prüfen, ob der Server einen Wert mit dem Key somedata gespeichert hat
isset($global->somedata);
// Auslösen von $global->__set('somedata',array(1,2,3)), um den Server zu benachrichtigen, dass der Wert für somedata array(1,2,3) sein soll
$global->somedata = array(1,2,3);
// Auslösen von $global->__get('somedata'), um den Wert für somedata vom Server abzufragen
var_export($global->somedata);
// Auslösen von $global->__unset('somedata'), um den Server zu benachrichtigen, dass somedata und der entsprechende Wert gelöscht werden sollen
unset($global->somedata);