Modern PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင် Laravel သည်အစွမ်းထက်သော session စီမံခန့်ခွဲမှုယန္တရားကိုထောက်ပံ့ပေးပြီး Entert PHP ၏ session ကိုလိုက်နာရန် Middate နှင့် configuration drivers များကိုပုံမှန်အားဖြင့်အသုံးပြုသည်။ သို့သော်အချို့သောအဆင့်မြင့်မြင်ကွင်းများတွင် developer များသည် session_register_shutdown () ကဲ့သို့သော PHP ၏ဇာတိ function များကိုတိုက်ရိုက်ဆက်သွယ်ရန်လိုအပ်လိမ့်မည်။ ဤဆောင်းပါးသည်ဤလုပ်ငန်းဆောင်တာကို Laravel တွင်မည်သို့ပေါင်းစပ်ညှိနှိုင်းရမည်ကိုရှင်းပြပါမည်။
Session_register_shutdown () သည် PHP ရှိ function တစ်ခုဖြစ်ပြီး script execution အဆုံးတွင်အလိုအလျောက်ခေါ်ဆိုသည့် function ကိုမှတ်ပုံတင်ထားသော function ကိုမှတ်ပုံတင်သည့် function တစ်ခုဖြစ်သည်။ script ကိုပိတ်ထားသောအခါ session data များကိုစနစ်တကျသိမ်းဆည်းထားကြောင်းသေချာစေရန်အသုံးပြုသည်။ ဤလုပ်ဆောင်ချက်သည်အထူးသဖြင့်သန့်ရှင်းရေးလုပ်ခြင်းသို့မဟုတ်ဒေတာဇွဲပြားမှုဆိုင်ရာလုပ်ဆောင်မှုများအတွက်စိတ်ကြိုက် session processor တွင်ပြုလုပ်ရန်သို့မဟုတ်ဒေတာဇွဲလုပ်ငန်းများလုပ်ကိုင်ရန်သင့်လျော်သည်။
Laravel သည် sessionmanager class ကို အသုံးပြု. Session Logic ကိုတူညီစွာစီမံရန်အသုံးပြုသည်။ နောက်ခံအလွှာသည် Setre DatiChig / Session မှ Configuration file config / session များမှတဆင့် session dright ကိုရွေးချယ်သည်။
ပရိုဆက်ဆာအတန်းအသစ်တစ်ခုဖန်တီးပြီး sessionhandlerinterface interface ကိုအမွေဆက်ခံပါ။
namespace App\Extensions;
use SessionHandlerInterface;
class NativeSessionHandler implements SessionHandlerInterface
{
public function open($savePath, $sessionName)
{
return true;
}
public function close()
{
return true;
}
public function read($id)
{
// ဖတ် session အချက်များ
return '';
}
public function write($id, $data)
{
// ရေးသား session အချက်များ
file_put_contents('/tmp/sessions/' . $id, $data);
return true;
}
public function destroy($id)
{
@unlink('/tmp/sessions/' . $id);
return true;
}
public function gc($maxLifetime)
{
// အမှိုက်သရိုက်စုဆောင်းပါ
return true;
}
}
Processor တစ်ခုကိုမှတ်ပုံတင်ပြီး Laravel's Service Provider တွင် Native Functions ကိုသုံးနိုင်သည်။
// App\Providers\AppServiceProvider.php
use App\Extensions\NativeSessionHandler;
public function boot()
{
$handler = new NativeSessionHandler();
session_set_save_handler($handler, true);
// မှတ်ပုံတင်ပြီးသည့်အခါ session ကိုအပြောင်းအလဲနဲ့
session_register_shutdown();
// လက်စွဲစာအုပ်စတင် session(မသုံးလျှင် Laravel Middleweware)
if (session_status() === PHP_SESSION_NONE) {
session_start();
}
}
Laravel မှတောင်းဆိုမှုအားလုံးကိုဤစိတ်ကြိုက် session processor ကိုဖြတ်သန်းသွားစေလိုပါက default middleware ကို disable လုပ်နိုင်ပြီး configuration ကိုအစားထိုးနိုင်သည်။ ဒီလိုမှမဟုတ်ရင်တိကျတဲ့တောင်းဆိုချက်တွေကသာဒီယုတ္တိဗေဒကိုသုံးနိုင်တယ်။
CLI ပတ်ဝန်းကျင်သို့မဟုတ်ပြတ်တောင်းပြတ်တောင်း script တွင် session အပြုအမူကိုထိန်းချုပ်ပါ
Laravel straddown တွင်ကြားခံထုတ်ယူခြင်းနှင့်အခြားပြ problems နာများကြောင့်ဖြစ်ပေါ်လာသောအချက်အလက်ဆုံးရှုံးမှုကိုရှောင်ပါ
session data session data ကို session data ကို session ကိုသိမ်းဆည်းပါ ။
public function write($id, $data)
{
$url = 'http://m66.net/session-api/store';
file_get_contents($url . '?id=' . urlencode($id) . '&data=' . urlencode($data));
return true;
}
Session_register_shutdown () ကို အသုံးပြု. ကုဒ်သည် Laravel ၏အချင်းချင်းအချင်းချင်းသို့မဟုတ်တုန့်ပြန်မှုယန္တရားအား 0 င်ရောက်စွက်ဖက်ခြင်းကိုရှောင်ရှားရန်တောင်းဆိုမှုကို LAYBECYCLE တွင်ကွပ်မျက်ရမည်။
အကယ် . သင်သည် Laravel's session middle middle monthork ကိုအသုံးပြုပါက,
Largrad Programing System သို့ Laravel's logging system ထဲသို့ Laravel ၏သစ်ထုတ်လုပ်ရေးစနစ်သို့ 0 င်ရောက်ခြင်းနှင့်ခြွင်းချက်ကိုင်တွယ်ရန်အကြံပြုသည်။
Laravel သည်အထူးလိုအပ်ချက်များအောက်တွင် Laraved session encapsulation encapsulation ထုတ်လွှတ်မှုယန္တရားကိုထောက်ပံ့သော်လည်း Php-native session_register_shutdown () ကိုပေါင်းစပ်ခြင်းသည် ပို. ဂန်ထူးထိန်းချုပ်မှုစွမ်းရည်ကိုပေါင်းစပ်နိုင်သည်။ Custom SessionHandler ဖြင့် Laravel ၏ပြောင်းလွယ်ပြင်လွယ်ကိုပိုမိုတည်ငြိမ်သောစနစ်များအတွက်ပိုမိုတည်ငြိမ်သော session ကိုစီမံခန့်ခွဲမှုအထောက်အပံ့များပေးရန်အတွက် Laravel ၏ပြောင်းလွယ်ပြင်လွယ်ကိုပေါင်းစပ်နိုင်သည်။