PHP တွင် session_register_shutdown () သည် session ကိုပိတ်ထားသည့်အခါကွပ်မျက်ခံရသည့် callback function ကိုမှတ်ပုံတင်ရန်အသုံးပြုသော function တစ်ခုဖြစ်သည်။ ဤယန္တရားသည် developer များကို session life cycle အပြီးတွင်သန့်ရှင်းရေးသို့မဟုတ်ဒေတာချွေတာသောလုပ်ငန်းများကိုလုပ်ဆောင်ရန်ကူညီနိုင်သည်။
သို့သော်ဗားရှင်း 5.4 မှစ. Session_register_shutdown () session_register_shutdown () ကို Session_write_Close () နှင့် session outsocies () နှင့် session shutdown callback ယန္တရားများဖြင့်အစားထိုးထားသည်။ သို့သော်အချို့သောအခြေအနေများတွင်အထူးသဖြင့်ရှုပ်ထွေးသောစီးပွားရေးယုတ္တိဗေဒကိုစီမံခန့်ခွဲရန် YAF မူဘောင်ကိုအသုံးပြုသောအခါကျွန်ုပ်တို့သည်စိတ်ကြိုက်ကုဒ်နံပါတ်ပြီးဆုံးသွားလိုဆဲဖြစ်သည်။
ဤဆောင်းပါးသည် session_register_shutdown_shutdown () ကိုမည်သို့လုပ်ဆောင်ရမည်ကိုအသေးစိတ်ဖော်ပြပြီး yaf framework ရှိလုပ်ဆောင်မှုများကိုမည်သို့လုပ်ဆောင်နိုင်ပြီး Session Ending ကိုနမူနာကုဒ်မှတဆင့်မည်သို့စီမံရမည်ကိုသရုပ်ပြပါလိမ့်မည်။
Session_register_shutdown () ၏အဓိကလုပ်ဆောင်ချက်မှာ PHP session ရေးသားခြင်းကိုပိတ်ထားသည့်အခါ callback function ကို execute လုပ်ရန်ဖြစ်သည်။ ရိုးရိုးရှင်းရှင်းပြောရလျှင်တောင်းဆိုမှုကိုပြုလုပ်ပါက PHP သည် session file ကိုအလိုအလျောက်ပိတ်သောအခါ (ဒေတာများကိုရေးဆွဲခြင်း, Locks ထုတ်လွှတ်ခြင်းစသည်), သင်မှတ်ပုံတင်ထားသော callback function ကိုခေါ်လိမ့်မည်။
သို့သော်ခေတ်သစ် PHP ဗားရှင်းများတွင်ဤလုပ်ဆောင်ချက်သည်တန်ဖိုးထားပြီး မှတ်ပုံတင်ရန် (သို့မဟုတ်) သို့မဟုတ် session_write_close () ကို အခြေခံ. သို့မဟုတ် Custom _wrak_close () အပေါ် အခြေခံ. အကြံပြုသည်။
YAF သည်ပေါ့ပါးပြီးစွမ်းဆောင်ရည်မြင့်မားသော PHP Framework ဖြစ်သည်။ ၎င်းသည် PHP ၏ Session Session ယန္တရားကိုပုံမှန်အားဖြင့် 0 င်ရောက်စွက်ဖက်ခြင်းမပြုပါ။
ဒီနေရာမှာအကြံပြုထားတဲ့အကျင့်တွေကတော့
တောင်းဆိုမှုအစတွင် session_start () session ကိုစတင်ရန်ခေါ်ဆိုပါ
တောင်းဆိုမှုအပြီးတွင် session_write_close () ကို မှတ်ပုံတင်ခြင်းကိုပိတ်ထားသည့်အခါမှတ်ပုံတင်ခြင်းကိုပိတ်ထားသည့်အခါမှတ်ပုံတင်ခြင်းနှင့်စစ်ဆင်ရေးကိုမှတ်ပုံတင်ပြီးပါ 0 င်သည်။
YAF မူဘောင်တွင် Session Management ကိုအကောင်အထည်ဖော်ရန်ဥပမာတစ်ခုမှာဤတွင်ဖြစ်သည်။
<?php
class Bootstrap extends Yaf_Bootstrap_Abstract
{
public function _initSession(Yaf_Dispatcher $dispatcher)
{
// စတင်တည်ထောင်သည် Session
session_start();
// မှတ်ပုံတင်ခြင်းဖွင့်လှစ်သည့်အခါ callbacks ကွပ်မျက်ခံရ
register_shutdown_function(function() {
// ဤနေရာတွင် session ကိုပိတ်လိုက်သည့်အခါကွပ်မျက်ခံရသောကုဒ်ဖြစ်ပါတယ်
// ဥပမာ, session data ကိုသိမ်းပါ,မှတ်တမ်းများကိုရေးပါ။
file_put_contents('/tmp/session_shutdown.log', date('Y-m-d H:i:s') . " Session closed\n", FILE_APPEND);
// session အရေးအသားကိုပိတ်ပြီးသော့ခတ်
session_write_close();
});
}
}
အထက်ပါကုဒ်၌:
Session_Start () တောင်းဆိုမှု၏အစတွင် session ကိုဖွင့်လှစ်
ancess_shutDown_Function () ကို သုံး. အမည်မသိ function ကိုမှတ်ပုံတင်ပြီး script ကိုမဖွင့်မီ၎င်းကို Execute လုပ်ပါ။
အသံသွင်းခြင်းသို့မဟုတ်အခြားသန့်ရှင်းရေးလုပ်ငန်းများကို callback တွင်ပြုလုပ်နိုင်သည်
နောက်ဆုံးအနေနဲ့ session_write_close () session ကို document ကိုရေးထားပြီး session lock ကိုဖြန့်ချိပေးဖို့သေချာအောင်ခေါ်ပါ
မည်သည့် controller တွင်မဆိုသင် $ _Session ကို ဝင်ရောက်ခြင်းနှင့်စီမံနိုင်သည်။
<?php
class IndexController extends Yaf_Controller_Abstract
{
public function indexAction()
{
// တည်ဆောက်သည် Session ပေြာင်းလဲတတ်သော
$_SESSION['user'] = 'Zhang San';
echo "Hello, " . $_SESSION['user'];
// သငျသညျလက်ဖြင့်ပိတ်ရန်ရှိသည်မဟုတ်ကြဘူး session,Bootstrap လုပ်ငန်းစဉ်အတွင်း callback လုပ်ငန်းများ၌ပါလိမ့်မည်
return false; // View Rendering Termate
}
}
သင်၏ကုဒ်သည်ပြင်ပ URL များကိုကြည့်ရှုခြင်းပါ 0 င်ပါက -
$url = 'https://www.example.com/api/data';
$response = file_get_contents($url);
လိုအပ်ချက်များအရဒိုမိန်းအမည်ကို M66.net ဖြင့်အစားထိုးရန်နှင့်၎င်းကိုပြောင်းရန်လိုအပ်သည်။