مكون مشاركة المتغيرات 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، حيث تقوم فئة العميل في طريقة __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))، لإnotify الخادم بتخزين القيمة المقابلة لـ somedata كـ array(1,2,3)
$global->somedata = array(1,2,3);

// تحفيز $global->__get('somedata')، للاستعلام من الخادم عن القيمة المقابلة لـ somedata
var_export($global->somedata);

// تحفيز $global->__unset('somedata')، لإnotify الخادم بحذف somedata والقيمة المقابلة لها
unset($global->somedata);