လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> cache status ကို ob_list_handlers နှင့်အတူ cache ကိုစစ်ဆေးနည်း

cache status ကို ob_list_handlers နှင့်အတူ cache ကိုစစ်ဆေးနည်း

gitbox 2025-05-29

နေ့စဉ် PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင်ကျွန်ုပ်တို့သည်စာမျက်နှာရှိအမှိုက်များကိုဖွင့်ထားသောကုဒ်များ, ယခုအချိန်တွင် output cache status ကိုလက်ရှိ script တွင်လျင်မြန်စွာကြည့်ရန်အလွန်အရေးကြီးသည်။
ob_list_handlers () function သည် function သည်အလွန်လက်တွေ့ကျသော gadget တစ်ခုဖြစ်သည်။

ob_list_handlers ဆိုတာဘာလဲ ()

ob_list_handlers () PHP တွင် built-in function တစ်ခုဖြစ်သည်။ လက်ရှိ Active output buffer အားလုံး၏ပရိုဆက်ဆာအမည်များ (handler name name name name names) စာရင်းပြုစုထားသည်။
ဤပရိုဆက်ဆာများကို OB_Start () မှကိုယ်တိုင်စတင်နိုင်ပါသည်။ သို့မဟုတ်၎င်းတို့ကို PHP ကိုယ်တိုင်က PHP ကိုယ်တိုင်သို့မဟုတ်အချို့သော extensions များ (ဥပမာ gzip compression) မှအလိုအလျောက်မှတ်ပုံတင်နိုင်သည်။

တရားဝင်စာရွက်စာတမ်းကိုးကားစရာ: https://www.gitbox.net/manual/zh/Function.ob-list-handlers.php

အခြေခံအသုံးပြုမှု

တကယ်တော့ဒါဟာအသုံးပြုရတာအရမ်းရိုးရှင်းပါတယ်, နမူနာကုဒ်ကတော့အောက်ပါအတိုင်းဖြစ်သည် -

 <?php
// ရိုးရှင်းသော output ကိုကြားခံတစ်ခုစတင်ပါ
ob_start();

// အခြား output buffer ကို Callback function ကိုစတင်ပါ
ob_start(function ($buffer) {
    return strtoupper($buffer);
});

// အသုံးပြု ob_list_handlers လက်ရှိ buffer status ကိုစစ်ဆေးပါ
print_r(ob_list_handlers());

// အားလုံး output ကြားခံအားလုံးပိတ်ပါ
while (ob_get_level() > 0) {
    ob_end_flush();
}
?>

output ရလဒ်သည်ဆင်တူသည်။

 Array
(
    [0] => Closure
    [1] => default output handler
)

သင်မြင်သည့်အတိုင်း ပိတ်ပစ်သည်မှာပိတ်ပစ်ခြင်း ဆိုသည်မှာအမည်မသိ function ကို buffer ပါဝင်မှုကိုကိုင်တွယ်နိုင်ပြီး default output handler သည် PHP ၏ default output processor ဖြစ်သည်။

လက်တွေ့ကျသော application တစ်ခု၏ဥပမာများ

အဆောက်အအုံကြီးများ, အထူးသဖြင့်ရှုပ်ထွေးသော template အင်ဂျင်များ, တတိယပါတီစာကြည့်တိုက်များသို့မဟုတ် Gzip Compression တို့ပါ 0 င်သည့်စီမံကိန်းများကိုဆွေးနွေးခြင်း

  • အကြောင်းအရာစီမံခန့်ခွဲမှုစနစ် (CMS)

  • e-commerce ပလက်ဖောင်း

  • API interface သည် Preprocessing ကိုပြန်ပို့သည်

အောက်ပါကုဒ်ကို script ၏အဓိကနေရာ၌ထည့်ပြီး၎င်းကိုအချိန်မှန်တွင်ကြည့်နိုင်သည်။

 <?php
if (!function_exists('debug_ob_handlers')) {
    function debug_ob_handlers() {
        echo '<pre>';
        print_r(ob_list_handlers());
        echo '</pre>';
    }
}

// တစ်နေရာရာမှာ debugging
debug_ob_handlers();
?>

GZIP သို့မဟုတ် template အင်ဂျင်များ၏ cache ယန္တရားများကြောင့်မမျှော်လင့်သောကြားခံများရှိခြင်းရှိမရှိလျင်မြန်စွာရှာဖွေတွေ့ရှိနိုင်သည်။

မှတ်သားရန်အရာ

  • ob_list_handlers () တက်ကြွသောပရိုဆက်ဆာများကိုသာစာရင်းပြုစုထားပြီးကြားခံတစ်ခုစီတွင်တိကျသောအကြောင်းအရာများကိုသင့်အားပြောပြလိမ့်မည်မဟုတ်ပါ။

  • အကယ်. script တွင် output buffering ကိုဖွင့်ထားပါကအချည်းနှီးသောခင်းကျင်းမှုကိုပြန်ပို့သည်။

  • အချို့သော extension များ (ဥပမာ zlib ကဲ့သို့) ကိုဖွင့်ထားသည့်အခါ ob_gzhandler ကဲ့သို့သောအပိုဆောင်း output ပရိုဆက်ဆာများကိုအလိုအလျောက်ထည့်သွင်းနိုင်ပြီးသင်ပ conflicts ိပက်ခများနှင့် ပတ်သက်. သတိထားရန်လိုအပ်သည်။

အကျဉ်းချုပ်

ob_list_handlers () သည် output buffering နှင့်ပတ်သက်သောပြ issues နာများကို debugging လုပ်သည့်အခါတွင် positioning speeding ကိုများစွာတိုးတက်စေနိုင်သည့်ပေါ့ပါးသော်လည်းလက်တွေ့ကျသောလုပ်ဆောင်ချက်ဖြစ်သည်။
PHP developer တိုင်းသည်၎င်းကိုကျွမ်းကျင်စေရန်နှင့်လိုအပ်ပါကလိုအပ်သည့်အခါလိုအပ်ပါကလိုအပ်သည့်အခါလိုအပ်ပါကအထူးသဖြင့်ရှုပ်ထွေးသော output လုပ်ဖော်ကိုင်ဖက်များသို့မဟုတ်ခက်ခဲသောအနေအထားပြ problems နာများကိုဖြေရှင်းရန်လိုသည်။