PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင်, Session သည်အသုံးပြုသူပြည်နယ်ကိုသိမ်းဆည်းရန်ယန္တရားတစ်ခုဖြစ်သည်။ အသုံးပြုသူ login status, စျေးဝယ်ခြင်းဈေးကွက်သတင်းအချက်အလက်စသည့်စာမျက်နှာများစွာအကြားအချက်အလက်များကိုမျှဝေရန်ခွင့်ပြုသည်။ Session Sharing ဟုခေါ်သော session မျှဝေခြင်းဆိုသည်မှာ PHP applications များသည်စနစ်များကိုစနစ်တကျလေ့လာရန်တူညီသော session data များရယူနိုင်သည်ဟုဆိုလိုသည်။
လက်တွေ့ကျသောအပလီကေးရှင်းများတွင်အောက်ပါအခြေအနေများတွင်အထူးသဖြင့် session sharing အတွက်အထူးတောင်းဆိုချက်များရှိသည်။
system ကိုဆာဗာများစွာတွင်ချထားသည့်အခါအသုံးပြုသူတောင်းဆိုမှုများသည်မတူညီသောဆာဗာများသို့ကျဆင်းနိုင်သည်။ တစ်ခုချင်းစီသည်လွတ်လပ်သော session တစ်ခုကိုထိန်းသိမ်းထားပါက၎င်းသည်အချက်အလက်မကိုက်ညီပါက၎င်းသည်အစီအစဉ်မျှဝေရန်လိုအပ်သည်။
Microssylice ဗိသုကာလက်အောက်တွင် module တစ်ခုစီကိုလွတ်လပ်သော 0 န်ဆောင်မှုများသို့ခွဲထွက်ရန်ကွဲပြားနေသည်။ စည်းလုံးညီညွတ်သောအသုံးပြုသူအစည်းအဝေးစီမံခန့်ခွဲမှုရရှိရန် Session Sharing သည်အခြေခံလိုအပ်ချက်ဖြစ်လာသည်။
subdomains မျိုးစုံသည် www.exampe.com နှင့် api.exame.com ကဲ့သို့သောပင်မပင်မဒိုမိန်းအမည်အောက်တွင်ရှိသည်။
အမှန်တကယ်စီမံကိန်းလိုအပ်ချက်များအရ, session sharing ကိုနားလည်သဘောပေါက်ရန်အောက်ပါနည်းလမ်းများကိုအသုံးပြုနိုင်သည်။
session data data များကိုဒေတာဘေ့စ်တွင်သိမ်းဆည်းခြင်းနှင့်အက်ပလီကေးရှင်းများကတူညီသောဒေတာဘေ့စ်စားပွဲ၌ 0 င်ရောက်ခြင်းကိုကြည့်ရှုခြင်း, ၎င်းကို session processor ကိုစိတ်ကြိုက်ပြုပြင်ခြင်းဖြင့်အကောင်အထည်ဖော်နိုင်သည်။
// တည်ဆောက်သည်Sessionသိုလှောင်မှုအလတ်စားသည်ဒေတာဘေ့စ်ဖြစ်သည်
session_set_save_handler(new MySessionHandler());
// စိတ်တိုင်းပြုSessionသိုလှောင်ခြင်းအပြောင်းအလဲအတွက်အတန်း
class MySessionHandler implements SessionHandlerInterface {
public function open($savePath, $sessionName) { ... }
public function close() { ... }
public function read($sessionId) { ... }
public function write($sessionId, $sessionData) { ... }
public function destroy($sessionId) { ... }
public function gc($maxLifetime) { ... }
}
Session File ကို NFS (သို့) ကွန်ယက်သိုလှောင်မှုမှတဆင့်ဆာဗာများအားလုံးကိုသိမ်းဆည်းထားသော supered directory သို့သိမ်းဆည်းပြီးအောက်ပါအတိုင်း configure လုပ်ပါ -
// တည်ဆောက်သည်Sessionဖိုင်တစ်ခုအနေဖြင့်သိုလှောင်ထားပါ
ini_set('session.save_handler', 'files');
ini_set('session.save_path', '/path/to/shared/folder');
// ဖြစ်ပေါ်လာခြင်းSession
session_start();
Session Data ကို Redis သို့မဟုတ် Memcached ကဲ့သို့သော cache များသိုလှောင်ခြင်းနှင့် 0 န်ဆောင်မှုမျိုးစုံကိုဝေမျှရန်တူညီသော cache address ကိုရယူနိုင်သည်။ REDIS configuration signer ကိုအောက်ပါအတိုင်းဖြစ်သည် -
// တည်ဆောက်သည်SessionအသုံးပြုRedisကုန်လေှာင်ရုံ
ini_set('session.save_handler', 'redis');
ini_set('session.save_path', 'tcp://127.0.0.1:6379');
// စတင်တည်ထောင်သည်Session
session_start();
Session Sharing ကိုအကောင်အထည်ဖော်ခြင်း session ကိုခွဲဝေမှုသည်သုံးစွဲသူအတွေ့အကြုံနှင့်အချက်အလက်များဖြန့်ဝေထားသောဗိသုကာစနစ်များ, ဘုံနည်းလမ်းများသည်ဒေတာဘေ့စ်များ, မျှဝေထားသောဖိုင်စနစ်များနှင့် cache စနစ်များအပေါ် အခြေခံ. ဖြေရှင်းနည်းများပါဝင်သည်။ မည်သည့်နည်းလမ်းကိုရွေးချယ်ရန်နည်းလမ်းကိုစီမံကိန်းဗိသုကာလက်ရာ, စွမ်းဆောင်ရည်လိုအပ်ချက်များနှင့်ပြုပြင်ထိန်းသိမ်းမှုစရိတ်အပေါ် အခြေခံ. နားလည်ထားသင့်သည်။