مكون مشاركة المتغيرات 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);