مكون 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';

// الاتصال بخادم 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))، لتخزين القيمة المقابلة لـ somedata كـ array(1,2,3)
$global->somedata = array(1,2,3);

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

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