လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP တွင်အသိုက် cache ကိုစီမံခန့်ခွဲမှုအတွက် ob_list_handlers နှင့် ob_start ကိုအသုံးပြုနည်း

PHP တွင်အသိုက် cache ကိုစီမံခန့်ခွဲမှုအတွက် ob_list_handlers နှင့် ob_start ကိုအသုံးပြုနည်း

gitbox 2025-05-28

PHP ဖွံ့ဖြိုးတိုးတက်မှုအတွင်းတွင် cache လုပ်ခြင်းယန္တရားသည် 0 ဘ်ဆိုဒ်စွမ်းဆောင်ရည်ကိုတိုးတက်စေရန်အရေးကြီးသောနည်းလမ်းဖြစ်သည်။ PHP သည် output buffer ယန္တရားကိုထောက်ပံ့ပေးသည်။ ob_start နှင့် ob_end_flush ကဲ့သို့သောလုပ်ဆောင်ချက်များကိုမှတစ်ဆင့် developer များကဝက်ဘ်စာမျက်နှာများ၏ output compute ကိုထိန်းချုပ်နိုင်သည်။ ဤချဉ်းကပ်မှုသည်အထူးသဖြင့်ထွက်ရှိသည့်အကြောင်းအရာများကိုသိုလှောင်ထားရန်နှင့်လုပ်ငန်းများ၌ပြုလုပ်ရန်လိုအပ်သည့်အခြေအနေများအတွက်အထူးသဖြင့်သင့်လျော်သည်။

OB_START နှင့် PHP တွင် Ob_list_Handlers မှတစ်ဆင့် PHP တွင် Ob_list_Handlers မှတစ်ဆင့်ပြောင်းလွယ်ပြင်လွယ်ရှိသောနေရာများကိုပြောင်းလွယ်ပြင်လွယ်စီမံခန့်ခွဲမှုစီမံခန့်ခွဲမှုများကိုမည်သို့အကောင်အထည်ဖော်ရမည်ကိုအသေးစိတ်မိတ်ဆက်ပေးလိမ့်မည်။

1 ။ အခြေခံသဘောတရားများ

ပထမ ဦး စွာ PHP output buffers နှင့်သက်ဆိုင်သောအခြေခံသဘောတတ်အချို့ကိုကျွန်ုပ်တို့နားလည်ရန်လိုအပ်သည်။

  • ob_start () - ဒီ function ကို output buffer စတင်ရန်အသုံးပြုသည်။ သင်ဤ function ကိုသင်ခေါ်ဆိုသောအခါ PHP သည်မှတ်ဉာဏ်တွင် output အားလုံးကိုသိုလှောင်ထားပြီး browser ကိုချက်ချင်းမပို့ပါ။

  • OB_END_FLUSH () - ဤလုပ်ဆောင်ချက်ဟုခေါ်သောအခါ PHP သည် Buffer ရှိ contents များကိုထုတ်ဖော်ပြောဆိုပြီးကြားခံကိုပိတ်လိမ့်မည်။

  • ob_list_handlers () - ဤလုပ်ဆောင်ချက်သည်လက်ရှိမှတ်ပုံတင်ထားသော output buffer processor များစာရင်းအားလုံးကိုရရှိစေသည်။ ဤပရိုဆက်ဆာများသည် Buffer ရှိ contents များကိုမည်သို့ကိုင်တွယ်ရမည်ကိုဆုံးဖြတ်သည်။

ဤလုပ်ငန်းဆောင်တာများမှတဆင့် PHP သည်ကြားခံပရိုဆက်ဆာမျိုးစုံအတွက်ပံ့ပိုးမှုစင်တာအပါအ 0 င် output appending အပါအ 0 င် output ကိုစီမံခန့်ခွဲရန်ပြောင်းလွယ်ပြင်လွယ်ယန္တရားများကိုထောက်ပံ့ပေးသည်။

2 ။ အလွှာပေါင်းစုံအသိုက် cache ကိုအကောင်အထည်ဖော်ခြင်း

Layer-layer cache ကိုအကောင်အထည်ဖော်နိုင်ရန်အတွက် OB_START () နှင့် ob_list_handlers () ကို ပေါင်းစပ်နိုင်သည်။ တိကျသောအဆင့်များမှာအောက်ပါအတိုင်းဖြစ်သည် -

အဆင့် 1: ကြားခံမျိုးစုံကိုစတင်ပါ

ob_start () function ကိုမှတစ်ဆင့်ကျွန်ုပ်တို့သည် output buffers မျိုးစုံကိုစတင်နိုင်ပါသည်။ ကြားခံတစ်ခုစီသည်ကွဲပြားခြားနားသောအပြောင်းအလဲနဲ့လုပ်ဆောင်နိုင်သည်။ ဥပမာအားဖြင့်:

 ob_start();  // ပထမ ဦး ဆုံးကြားခံစတင်ပါ
echo "ဤသည်ပထမ ဦး ဆုံးကြားခံ၏ output ကိုဖြစ်ပါတယ်。";
ob_start();  // ဒုတိယကြားခံစတင်ပါ
echo "ဤသည်ဒုတိယကြားခံ၏ output ကိုဖြစ်ပါတယ်。";

ဤအချိန်တွင်ကြားခံနှစ်ခုသည်အကြောင်းအရာများကိုသီးခြားစီ cache လုပ်လိမ့်မည်။

အဆင့် 2: Buffer Processor ကိုကြည့်ပါ

ob_list_handlers () function ကိုအသုံးပြုခြင်းသည်ထပ်မံစီမံခန့်ခွဲမှုဖြင့်ကျွန်ုပ်တို့ကိုကူညီရန်လက်ရှိမှတ်ပုံတင်ထားသောကြားခံပရိုဆက်ဆာကိုကြည့်ရှုနိုင်သည်။ ဥပမာအားဖြင့်:

 $handlers = ob_list_handlers();
print_r($handlers);

၎င်းသည်လက်ရှိတက်ကြွသော output buffer ပရိုဆက်ဆာများအားလုံးကိုအမည်သို့မဟုတ်အမျိုးအစားကိုထုတ်ပေးလိမ့်မည်။

အဆင့် 3. အကြောင်းအရာကိုထုတ်ဖော်ပြောဆိုခြင်းနှင့်ထုတ်လွှင့်မှုကိုအဆုံးသတ်ပါ

OB_END_FLUSH () နှင့်အတူကျွန်ုပ်တို့သည် Buffer One ရှိအကြောင်းအရာများကိုအနီးကပ်နှင့်ထုတ်လွှင့်နိုင်သည်။ ဥပမာအားဖြင့်:

 ob_end_flush();  // Content ကို Exput ကိုပိတ်ပါ
ob_end_flush();  // ပထမ ဦး ဆုံးကြားခံနှင့်အကြောင်းအရာ output ကိုပိတ်ပါ

နောက်ဆုံးတွင်ဘရောင်ဇာသည်အောက်ပါတို့ကိုပြလိမ့်မည်။

 ဤသည်ဒုတိယကြားခံ၏ output ကိုဖြစ်ပါတယ်。
ဤသည်ပထမ ဦး ဆုံးကြားခံ၏ output ကိုဖြစ်ပါတယ်。

ဤနည်းလမ်းသည်ကျွန်ုပ်တို့အားကွဲပြားခြားနားသောအဆင့်ဆင့်နှင့်ပြောင်းလွယ်ပြင်လွယ်ရှိသည့်အကြောင်းအရာများကိုသိုလှောင်ရန်ခွင့်ပြုသည်။

3 ။ cache processing ၏ပြောင်းလွယ်ပြင်လွယ်

PHP ၏ output buffer များသည်အသိုက်အသုံးပြုမှုကိုခွင့်ပြုရုံသာမကကွဲပြားခြားနားသောကြားခံများအတွက်ကွဲပြားခြားနားသောပရိုဆက်ဆာများကိုလည်းသုံးနိုင်သည်။ ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည် cached content ကိုပြုပြင်ရန်သို့မဟုတ် filter လုပ်ရန်ထုံးစံ output processor ကိုသုံးနိုင်သည်။ ဒီမှာဥပမာတစ်ခုပါ။

 function custom_handler($buffer) {
    return strtoupper($buffer);  // Buffer အကြောင်းအရာများကိုအရင်းအနှီးသို့ပြောင်းပါ
}

ob_start('custom_handler');
echo "ဒါကကြားခံမှာပါ。";
ob_end_flush();

ဒီကုဒ် output ကိုဖြစ်လိမ့်မည်:

 ဒါကကြားခံမှာပါ。

ဒါပေမယ့် Custom_Handler processing ပြီးနောက်နောက်ဆုံး output ကိုပါ 0 င်သည့်အကြောင်းအရာများဖြစ်လာလိမ့်မည်။

 ဒါကကြားခံမှာပါ。

ဤစိတ်ကြိုက်ပရိုဆက်ဆာချဉ်းကပ်မှုက Cached Content ကိုထိန်းချုပ်ရန်ပြောင်းလွယ်ပြင်လွယ်ရှိသည်။

4 ။ အကျဉ်းချုပ်

ob_start , ob_end_flush နှင့် ob_list_handlers ကဲ့သို့သောလုပ်ဆောင်ချက်များကိုပေါင်းစပ်ခြင်းအားဖြင့် PHP သည်ထုတ်လုပ်သူများကိုအလွှာပေါင်းစုံအသိုက် caches ကိုပြောင်းလွယ်ပြင်လွယ်မှုကိုပြောင်းရန်ခွင့်ပြုသည်။ မတူညီသော cache ပမာဏကိုလိုအပ်သလိုသုံးနိုင်သည်, မတူညီသောပရိုဆက်ဆာများကို အသုံးပြု. carded content ၏ထုတ်လုပ်မှုတွင်သူတို့ကိုပြုပြင်နိုင်သည်။ ဤကျွမ်းကျင်မှုများကိုကျွမ်းကျင်စေခြင်းအားဖြင့်သင်သည်သင်၏ဝဘ်စာမျက်နှာများ၏စွမ်းဆောင်ရည်ကိုပိုမိုကောင်းမွန်အောင်ပြုလုပ်နိုင်ပြီးသုံးစွဲသူအတွေ့အကြုံကိုတိုးတက်စေနိုင်သည်။