လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> အဘယ်ကြောင့် session_register_shutdown () function ကို cli mode မှာအသုံးပြုလို့မရပါဘူး? ၎င်း၏ကန့်သတ်ချက်များကဘာလဲ?

အဘယ်ကြောင့် session_register_shutdown () function ကို cli mode မှာအသုံးပြုလို့မရပါဘူး? ၎င်း၏ကန့်သတ်ချက်များကဘာလဲ?

M66 2025-06-23

PHP Development တွင် Session_register_shutdown () Session_register_shutdown () သည် session အနီးကပ်ခေါ်ဆိုမှုကိုမှတ်ပုံတင်ရန်အသုံးပြုသော function တစ်ခုဖြစ်သည်။ ရည်ရွယ်ချက်မှာ session ၏ရေးဆွဲခြင်းနှင့်ပိတ်ခြင်းကိုကိုင်တွယ်ရန် Script လုပ်ဆောင်မှု၏အဆုံးတွင်သတ်မှတ်ထားသော function ကိုအလိုအလျောက်ခေါ်ဆိုရန်ဖြစ်သည်။ သို့သော် developer များစွာသည် PHP scripts ကို command line mode (CLI) တွင်အသုံးပြုသောအခါ session_register_shutdown_shutdown () သည် မှန်ကန်စွာနှင့်အမှားအယွင်းများသို့မဟုတ်မမှန်ကန်တဲ့အခြေအနေများနှင့်မမှန်ကန်တဲ့အခြေအနေများနှင့်အလုပ်မလုပ်ကြောင်းတွေ့ရှိလိမ့်မည်။ ဤဆောင်းပါးသည်ဤသို့ဖြစ်ပျက်ရသည့်အကြောင်းရင်းနှင့်ဤလုပ်ဆောင်မှု၏တိကျသောကန့်သတ်ချက်များအပေါ်နက်နက်နဲနဲလေ့လာဆန်းစစ်ဆန်းစစ်ခြင်းကိုပြုလုပ်လိမ့်မည်။

session_register_shutdown () ?

Session_register_shutdown () PHP Session Management တွင်အထောက်အကူပြုလုပ်ကိုင်သူဖြစ်သည်။ ၎င်း၏ function သည် session အနီးကပ် callback function ကိုအလိုအလျောက်မှတ်ပုံတင်ရန်ဖြစ်သည်။ script ကိုကွပ်မျက်ခံရသောအခါ PHP သည်၎င်းကို session data data ကိုသိမ်းဆည်းရန်နှင့်ပိတ်ရန်အလိုအလျောက်ခေါ်ဆိုလိမ့်မည်။ ၎င်းသည်အချက်အလက်ကိုက်ညီမှုရှိစေရန် Session_write_Close () ကို ကိုယ်တိုင်ခေါ်ဆိုခြင်းမပြုပါ။

 <?php
session_start();
session_register_shutdown();
$_SESSION['user'] = 'Alice';
?>

အဘယ်ကြောင့် session_register_shutdown () cli mode မှာအသုံးပြုလို့မရဘူး?

1 ။ CLI ပတ်ဝန်းကျင်နှင့်ဝဘ်ပတ်ဝန်းကျင်အကြားကွာခြားချက်များ

  • မတူညီသောလည်ပတ်မှုပတ် 0 န်းကျင်များ - CLI mode သည် HTTP တောင်းဆိုမှုများနှင့်တုံ့ပြန်မှုများအကြောင်းအခြေအနေမရှိဘဲ command line command ပြုလုပ်ခြင်းသည်ပတ်ဝန်းကျင်တစ်ခုဖြစ်သည်။ PHP ၏ session ယန္တရားကိုဒီဇိုင်းဆွဲသည့်အခါ 0 က်ဘ်တောင်းဆိုမှုဘဝသံသရာကိုအဓိကရည်ရွယ်သည်။

  • session processing ယန္တရားသည်ကွဲပြားသည် ။ Web Mode တွင် PHP သည်တောင်းဆိုမှုများ၏အစနှင့်အဆုံးကိုအလိုအလျောက်စီမံခန့်ခွဲသည်။ CLI Mode တွင် scripts များသည်တစ်ချိန်ကကွပ်မျက်ခံရပြီးတောင်းဆိုမှုများနှင့်ဆင်တူသည့်ဘဝသံသရာအယူအဆမရှိပါ။

  • PHP Kernel Docal Grow : Session_register_shutdown () သည် PHP ၏ Session Module ချိတ်များပေါ်တွင်အမှန်တကယ်မှီခိုအားထားနေသည့် PHP ၏ Session Module ချိတ်များပေါ်တွင်အမှန်တကယ်မှီခိုနေရသည်။

2 ။ လုပ်ဆောင်ချက်၏အတွင်းပိုင်းအကောင်အထည်ဖော်မှုသည် cli ကိုမပံ့ပိုးပါ

PHP source code နှင့်တရားဝင်စာရွက်စာတမ်းများကိုကြည့်ခြင်းအားဖြင့် PHP တွင် Session_register_shutdown () Shutdown_shutdown_Fack_rofunction ( Registration_shutdown_Function ) ကိုမှတ်ပုံတင်ခြင်းနှင့် ပတ်သက်. သင်တွေ့ရှိနိုင်သည်။ CLI mode တွင် Session_register_shutdown () သည် ခေါ်ဆိုမှုကိုအမှန်တကယ်အကောင်အထည်ဖော်ခြင်းမဟုတ်ဘဲခေါ်ဆိုမှုအချိန်သည်ကွဲပြားခြားနားသည်။

3 ။ PHP ဗားရှင်းနှင့် configuration သက်ရောက်မှု

PHP ဗားရှင်းသို့မဟုတ် configurations အချို့သည်အထူးသဖြင့် CLI ပတ် 0 န်းကျင်တွင် function function ကို disable လုပ်နိုင်သည်သို့မဟုတ်ဖယ်ထုတ်နိုင်သည်။

session_register_shutdown () ၏ကန့်သတ်ချက်များသည်အဘယ်နည်း။

  1. ဝဘ်တောင်းဆိုမှုပတ်ဝန်းကျင်သာ <br> <br> အဆိုပါ function ကိုဝက်ဘ်တောင်းဆိုမှုပတ်ဝန်းကျင်ဖြစ်ရန်ဒီဇိုင်းရေးဆွဲထားပြီး CLI scripts သို့မဟုတ် daemons များအတွက်မသင့်တော်ပါ။

  2. ပေါင်းစုံ session ကိုတစ်ပြိုင်နက်တည်းကမပံ့ပိုးပါ အကယ်. တောင်းဆိုမှုများသည်တစ်ပြိုင်နက်တည်းတူညီသော session တစ်ခုနှင့်အတူတူပင် session ကိုလည်ပတ်ပါကပိတ်ခြင်းအချိန်သည်မထိန်းချုပ်နိုင်ပါ။

  3. ခေတ်မမီတော့နှင့်မထောက်ခံပါ PHP 7 နှင့်နောက်ပိုင်းတွင် Session_write_Close () ကဲ့သို့သောခေတ်မီသော session စီမံခန့်ခွဲမှုယန္တရားများကိုအသုံးပြုရန်တရားဝင်ပြုလုပ်ရန်တရားဝင်အကြံပြုထားပါသည်။

  4. Php ပြည်တွင်းရေးယန္တရားအပေါ်မှီခို <br> ဤလုပ်ဆောင်ချက်သည် PHP hook function တွင်မူတည်သည်။ စိတ်ကြိုက် session ပရိုဆက်ဆာအချို့သို့မဟုတ် extensions များသည်သဟဇာတဖြစ်မှုဖြစ်နိုင်သည်။

  5. ပြတ်တောင်းပြတ်တောင်းသို့မဟုတ်နောက်ခံအရေးယူခြင်းကိုမထောက်ပံ့ပါ သာထပ်တူပြုခြင်းထားသည့်ပတ် 0 န်းကျင်အတွက်သာရရှိနိုင်ပါသည်။

CLI MODE တွင်အကြံပြုထားသော session processing method ကိုအကြံပြုသည်

အကယ်. သင်သည် cli script တစ်ခုတွင် session တစ်ခုကိုအသုံးပြုရန်လိုအပ်ပါကအောက်ပါတို့ကိုသင်လုပ်နိုင်သည်။

  • session_start () နှင့် session_write_close () ကိုကိုယ်တိုင်ခေါ်ပါ။
    အတိအလင်းဖွင့်နှင့် session ကို session ကို session ကိုပိတ်ပါ။

 <?php
session_start();
$_SESSION['cli_test'] = 'value';
// ကိုယ်တိုင် session ကိုပိတ်ပါ,ဒေတာကိုရေးထားကြောင်းသေချာပါစေ
session_write_close();
?>
  • အလိုအလျောက် callback ပိတ်ခြင်းအပေါ်မှီခိုကိုရှောင်ကြဉ်ပါ
    Session_register_shutdown () cli ပတ်ဝန်းကျင်တွင်မထားပါနှင့် () CLI ပတ်ဝန်းကျင်တွင်ကွပ်မျက်မပေးနိုင်ပါ။

  • ဖိုင်သော့ခတ်ခြင်းသို့မဟုတ်ဒေတာဘေ့စ်၏သော့ခတ်ကိရိယာကို အသုံးပြု. စဉ်းစားပါ Concurent Cli script များသည်ပ conflicts ိပက်ခများကိုရှောင်ရှားရန်တစ်ချိန်တည်းတွင် session data များကိုတစ်ချိန်တည်းတွင်ရေးပါ။