PHP ကိုအသုံးပြုပြီးဝက်ဘ်ဆိုက်များကိုတည်ဆောက်ရာတွင် session_register_shutdown သည်အတော်အတန်အသုံးမကျသော်လည်းအရေးပါသော function ဖြစ်သည်။ ၎င်း၏လုပ်ဆောင်ချက်သည် session ကိုကိုင်တွယ်ရန် script ကိုကိုင်တွယ်ရန် script ၏အဆုံးမှာအလိုအလျောက်ခေါ်ဆိုသော function ကိုမှတ်ပုံတင်ရန်ဖြစ်သည်။ ရိုးရှင်းစွာရိုးရှင်းစွာရိုးရှင်းစွာမသင့်လျော်သောအသုံးပြုမှုသည်ဆိုးဝါးသောအမှားများကိုဖြစ်ပေါ်စေနိုင်သည်။
ဤဆောင်းပါးသည် session_register_shutownhutowns ကိုအသုံးပြုသောအခါသင်ကြုံတွေ့ရနိုင်သည့်ပြ problems နာများကိုတူးဖော်ပြီး developer များရှာဖွေရေးအချက်အလက်များကိုလုံခြုံစွာနှင့်ထိရောက်စွာစီမံခန့်ခွဲရန်ကူညီရန်အကောင်းဆုံးသောလုပ်ထုံးလုပ်နည်းများကိုထောက်ပံ့ပေးလိမ့်မည်။
PHP မှ Session System သည် session ကိုကွပ်မျက်ခံရသောအခါ session data ကိုအလိုအလျောက်သိမ်းဆည်းသည်။ သို့သော်အချို့သောကိစ္စရပ်များတွင် developer များသည်ကယ်တင်ခြင်းအပြုအမူကိုစိတ်ကြိုက်ပြုလုပ်ရန်လိုအပ်နိုင်သည်။ session_register_shutdown function သည် session_wrawite_close () ကိုသေချာစေရန်အသုံးပြုသော tool မှာ session_write_close () ကို သေချာစေရန်ကိရိယာဖြစ်သည်။
session_start();
session_register_shutdown();
// Your code
ဤလုပ်ဆောင်မှုသည် session_wrait_close_Close () ကို accession ကိုအနှောင့်အယှက်ဖြစ်စေခြင်းမရှိ, မပါ 0 င်ကြောင်းဟုခေါ်သည်။
session_register_shutownhutown သည်အန္တရာယ်ကင်းသော်လည်းမသင့်လျော်သောအသုံးပြုမှုသည်အောက်ပါဆိုးဝါးသောအမှားများကိုဖြစ်ပေါ်စေနိုင်သည်။
Fatal error: session_write_close(): Session callback expects true/false return value
စိတ်ကြိုက် session processor သည် boolean ကိုမှန်ကန်စွာမပြန်ပါကဤအမှားသည်မကြာခဏဖြစ်ပေါ်လေ့ရှိသည်။ ထို့အပြင် Session_write_Close_Close () ကို ရရှိနိုင်သည့်အခါထပ်ခါတလဲလဲခေါ်ဆိုမှုများသည်ခေါ်ဆိုမှု stack တွင်ရရှိထားပြီးဖြစ်သည်။
// ယူဆချက် session မစတင်သေးဘူး
session_register_shutdown();
// အခုအချိန်တွင် session_write_close မှတ်ပုံတင်ခဲ့သည်,ဒါပေမဲ့ session မဖွင့်ပါ
ဤအခြေအနေသည် Runtime ပတ်ဝန်းကျင်တွင်ဆိုးဝါးသောအမှားများကိုဖြစ်ပေါ်စေနိုင်သည်။
session_register_shutdown () , session_start (), session_start (), session_start () ကို အတိအလင်းဟုအတိအလင်းခေါ်ယူသင့်သည်။
if (session_status() !== PHP_SESSION_ACTIVE) {
session_start();
}
session_register_shutdown();
လျှောက်လွှာတွင်အချို့သောအစိတ်အပိုင်းများသည် session_write_close () ကို တက်ကြွစွာခေါ်ဆိုနိုင်သည် ။ ၎င်းကိုတစ်ကြိမ်သာပိတ်ထားရန်သေချာစေရန်ကုဒ်မှတဆင့်ဖွဲ့စည်းသင့်သည် -
register_shutdown_function(function () {
if (session_status() === PHP_SESSION_ACTIVE) {
session_write_close();
}
});
session_set_saver_handler () session အပြုအမူကိုစိတ်ကြိုက်ပြုပြင်ရန်သင်အသုံးပြု ပါ ကခြွင်းချက် များ ဖြစ်ပေါ် ခြင်းကို ရှောင်ရှားရန် Processor method များအားလုံးကိုသေချာစေရန်သေချာစေရမည် ။
class CustomSessionHandler implements SessionHandlerInterface {
public function write($id, $data): bool {
// ယုတ္တိဗေဒရေးပါ
return true;
}
public function close(): bool {
return true;
}
// အခြားနည်းလမ်းများကိုချန်လှပ်ထားသည်
}
session_set_save_handler(new CustomSessionHandler(), true);
ထုတ်လုပ်မှုပတ် 0 န်းကျင်ကိုနေရာချထားခြင်းမပြုမီအလားအလာရှိသောပြ problems နာများကိုချက်ချင်းရှာဖွေရန် logging မှတစ်ဆင့် session ကိုလိုက်နာနိုင်သည်။
register_shutdown_function(function () {
error_log('Session status at shutdown: ' . session_status());
});
session_register_shutdown ကိုမှန်ကန်စွာအသုံးပြုခြင်းသည် PHP 0 က်ဘ်ဝဘ်ဆိုက်၏တည်ငြိမ်မှုကိုတိုးတက်စေရန်အတွက်အရေးကြီးသောအပိုင်းဖြစ်သည်။ developer များကဤ session ကိုမှန်ကန်စွာစတင်ရန်သေချာစေခြင်း, ထပ်ခါတလဲလဲပိတ်ခြင်းကိုရှောင်ရှားရန်,