လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Laravel တွင် PHP မှဇာတိ session_register_shutdown ()

Laravel တွင် PHP မှဇာတိ session_register_shutdown ()

M66 2025-05-25

Modern PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင် Laravel သည်အစွမ်းထက်သော session စီမံခန့်ခွဲမှုယန္တရားကိုထောက်ပံ့ပေးပြီး Entert PHP ၏ session ကိုလိုက်နာရန် Middate နှင့် configuration drivers များကိုပုံမှန်အားဖြင့်အသုံးပြုသည်။ သို့သော်အချို့သောအဆင့်မြင့်မြင်ကွင်းများတွင် developer များသည် session_register_shutdown () ကဲ့သို့သော PHP ၏ဇာတိ function များကိုတိုက်ရိုက်ဆက်သွယ်ရန်လိုအပ်လိမ့်မည်။ ဤဆောင်းပါးသည်ဤလုပ်ငန်းဆောင်တာကို Laravel တွင်မည်သို့ပေါင်းစပ်ညှိနှိုင်းရမည်ကိုရှင်းပြပါမည်။

1 ။ Session_register_shutdown ()

Session_register_shutdown () သည် PHP ရှိ function တစ်ခုဖြစ်ပြီး script execution အဆုံးတွင်အလိုအလျောက်ခေါ်ဆိုသည့် function ကိုမှတ်ပုံတင်ထားသော function ကိုမှတ်ပုံတင်သည့် function တစ်ခုဖြစ်သည်။ script ကိုပိတ်ထားသောအခါ session data များကိုစနစ်တကျသိမ်းဆည်းထားကြောင်းသေချာစေရန်အသုံးပြုသည်။ ဤလုပ်ဆောင်ချက်သည်အထူးသဖြင့်သန့်ရှင်းရေးလုပ်ခြင်းသို့မဟုတ်ဒေတာဇွဲပြားမှုဆိုင်ရာလုပ်ဆောင်မှုများအတွက်စိတ်ကြိုက် session processor တွင်ပြုလုပ်ရန်သို့မဟုတ်ဒေတာဇွဲလုပ်ငန်းများလုပ်ကိုင်ရန်သင့်လျော်သည်။

2 ။ Laravel Calling ယန္တရားကိုနိဒါန်း

Laravel သည် sessionmanager class ကို အသုံးပြု. Session Logic ကိုတူညီစွာစီမံရန်အသုံးပြုသည်။ နောက်ခံအလွှာသည် Setre DatiChig / Session မှ Configuration file config / session များမှတဆင့် session dright ကိုရွေးချယ်သည်။

3 ။ ပေါင်းစည်းဆွေးနွေးပွဲ _register_shutdown ()

အဆင့် 1: စိတ်ကြိုက် session processor ကိုဖန်တီးပါ

ပရိုဆက်ဆာအတန်းအသစ်တစ်ခုဖန်တီးပြီး 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;
    }
}

အဆင့် 2 - ပရိုဆက်ဆာကိုမှတ်ပုံတင်ပြီး Session_register_shutdown () ခေါ်ဆိုပါ။

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();
    }
}

အဆင့် 3. configuration ကိုပြုပြင်ပြီးထုံးစံအတိုင်းယုတ္တိဗေဒကိုသုံးပါ။

Laravel မှတောင်းဆိုမှုအားလုံးကိုဤစိတ်ကြိုက် session processor ကိုဖြတ်သန်းသွားစေလိုပါက default middleware ကို disable လုပ်နိုင်ပြီး configuration ကိုအစားထိုးနိုင်သည်။ ဒီလိုမှမဟုတ်ရင်တိကျတဲ့တောင်းဆိုချက်တွေကသာဒီယုတ္တိဗေဒကိုသုံးနိုင်တယ်။

4 ။ အခြေအနေများသုံးပါ

  • 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;
}

5 ။ မှတ်စုဖို့အရာ

  • Session_register_shutdown () ကို အသုံးပြု. ကုဒ်သည် Laravel ၏အချင်းချင်းအချင်းချင်းသို့မဟုတ်တုန့်ပြန်မှုယန္တရားအား 0 င်ရောက်စွက်ဖက်ခြင်းကိုရှောင်ရှားရန်တောင်းဆိုမှုကို LAYBECYCLE တွင်ကွပ်မျက်ရမည်။

  • အကယ် . သင်သည် Laravel's session middle middle monthork ကိုအသုံးပြုပါက,

  • Largrad Programing System သို့ Laravel's logging system ထဲသို့ Laravel ၏သစ်ထုတ်လုပ်ရေးစနစ်သို့ 0 င်ရောက်ခြင်းနှင့်ခြွင်းချက်ကိုင်တွယ်ရန်အကြံပြုသည်။

6 ။ နိဂုံးချုပ်

Laravel သည်အထူးလိုအပ်ချက်များအောက်တွင် Laraved session encapsulation encapsulation ထုတ်လွှတ်မှုယန္တရားကိုထောက်ပံ့သော်လည်း Php-native session_register_shutdown () ကိုပေါင်းစပ်ခြင်းသည် ပို. ဂန်ထူးထိန်းချုပ်မှုစွမ်းရည်ကိုပေါင်းစပ်နိုင်သည်။ Custom SessionHandler ဖြင့် Laravel ၏ပြောင်းလွယ်ပြင်လွယ်ကိုပိုမိုတည်ငြိမ်သောစနစ်များအတွက်ပိုမိုတည်ငြိမ်သော session ကိုစီမံခန့်ခွဲမှုအထောက်အပံ့များပေးရန်အတွက် Laravel ၏ပြောင်းလွယ်ပြင်လွယ်ကိုပေါင်းစပ်နိုင်သည်။