လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> OB_List_Handlers ၏အကူအညီဖြင့် count cache handler ၏ခေါ်ဆိုမှု stack ကိုခြေရာခံပုံ

OB_List_Handlers ၏အကူအညီဖြင့် count cache handler ၏ခေါ်ဆိုမှု stack ကိုခြေရာခံပုံ

gitbox 2025-05-20

PHP တွင် ob_list_handlers function သည် cache handlers များကိုလက်ရှိ output buffer manager (OB) တွင်ရရှိသောကိရိယာများအတွက်ကိရိယာတစ်ခုဖြစ်သည်။ ၎င်းမှတစ်ဆင့် cache handlers များ၏ခေါ်ဆိုမှု stack ကိုသင်ခြေရာခံနိုင်သည်။ ဤဆောင်းပါးသည် PHP cache handlers ၏ခေါ်ဆိုမှု stack ကို debug လုပ်ရန် Ob_list_Handlers ကို မည်သို့အသုံးပြုရမည်ကိုရှင်းပြပါမည်။

PHP output cache ဆိုတာဘာလဲ။

PHP တွင် output cache သည် output cache သည် output cache ကိုယာယီသိမ်းဆည်းရန်ယန္တရားတစ်ခုဖြစ်ပြီး browser သို့တိုက်ရိုက်ပို့ခြင်းထက် Script execution တွင် output ကိုဖမ်းယူရန်ခွင့်ပြုရန်ယန္တရားတစ်ခုဖြစ်သည်။ ၎င်းသည် output output များကို output outporation များအကြောင်း (သို့) အကြောင်းအရာပြုပြင်ခြင်း (ချုံ့ခြင်း, ပြုပြင်ခြင်းစသဖြင့်) လုပ်ဆောင်ရန်အတွက်အလွန်အသုံးဝင်သည်။ ob_start () , ob_endush (), ob_flush () , ob_flush () ,

ob_list_handlers အသုံးပြု. Debug output ကို cache

ob_list_handlers function ၏လုပ်ဆောင်ချက်သည်လက်ရှိ output cache ကိုင်တွယ်သူအားလုံးကိုပြန်လည်ပေးပို့ရန်ဖြစ်သည်။ ဤကိုင်တွယ်သူများတွင် ob_start မှဖန်တီးထားသော cache handlers များပါဝင်သည်။ cache stack များစာရင်းကိုနားလည်ရန် Cache Stack စာရင်းကိုရယူရန်ဤလုပ်ဆောင်မှုကိုသင်အသုံးပြုနိုင်သည်။

နမူနာကုဒ်: cache handler ကိုခြေရာခံ

 <?php

// output ကို cache ကိုစတင်ပါ
ob_start();

// Custom Cache Handler ထည့်ပါ
ob_start(function($buffer) {
    return strtoupper($buffer);  // output ကိုစာလုံးအကြီးသို့ပြောင်းပါ
});

// သွား ob_list_handlers လက်ရှိ cache ကိုင်တွယ်စာရင်းကိုရယူပါ
$handlers = ob_list_handlers();
echo "လက်ရှိ cache handler:\n";
print_r($handlers);

// အကြောင်းအရာအချို့ကို output
echo "ဒီစမ်းသပ်မှု string ကိုဖြစ်ပါတယ်。";

// အားလုံးကိုင်တွယ်အားလုံးရယူပါ
$handlers = ob_list_handlers();
echo "လက်ရှိ cache handler(ထပ်မံခေါ်ပါ ob_list_handlers):\n";
print_r($handlers);

// cache နှင့် output ကိုအဆုံးသတ်
ob_end_flush();

// cache အဆုံးသတ်
ob_end_clean();
?>

code parsing

  1. ob_start () - output cache ကိုစတင်ပါ။ Handler ကိုမဖော်ပြသောအခါ PHP သည်ပုံမှန် cache ယန္တရားကိုအသုံးပြုသည်။

  2. ob_start (function) {buffer) {buffer) {buffer) : output အကြောင်းအရာကိုစာလုံးအကြီးအဖြစ်ပြောင်းလဲရန်စိတ်ကြိုက် cache handler ကိုသတ်မှတ်သည်။

  3. ob_list_handlers () - လက်ရှိ output cache ကိုင်တွယ်စာရင်းအားလုံးကိုစာရင်းပြုစုထားပြီးလက်ရှိသိုလှောင်ထားသောအပြောင်းအလဲများကိုကြည့်ရှုနိုင်သည်။

  4. ob_end_flush () : cache ကို end end buffer ၏ cache ၏ cachement ကို browser ကို browser မှပါရှိသည်။

  5. ob_clean () : end cache ကိုအဆုံးသတ်ပြီး Buffer အကြောင်းအရာကိုစွန့်ပစ်ပါ။

အထက်ပါကုဒ်တွင် ob_list_handlers များကို အသုံးပြု. လက်ရှိ output cache handlers စာရင်းကိုကြည့်ရှုနိုင်သည်။ function ကိုခေါ်သည့်အခါတိုင်းသင်လက်ရှိ activate လုပ်ထားသော cache ကိုင်တွယ်သူအားလုံးပါ 0 င်သည့် array တစ်ခုတွေ့လိမ့်မည်။

ရလဒ်ဥပမာ:

 လက်ရှိ cache handler:
Array
(
    [0] => no-processor
    [1] => closure
)

လက်ရှိ cache handler(ထပ်မံခေါ်ပါ ob_list_handlers):
Array
(
    [0] => closure
)

အပေါ်ကဥပမာမှာလက်ရှိ cache handler ရဲ့ stack ကိုတွေ့နိုင်တယ်။ OB_List_Handlers သို့ပထမဆုံးခေါ်ဆိုမှု () သည်ပုံမှန် "ပရိုဆက်ဆာ" ( No-processor "ကိုပြန်ပို့သည် ဆိုလိုသည်မှာ cache stack သည်ခေါ်ဆိုမှု၏အမိန့်အရပြောင်းလဲလိမ့်မည်။

OB_List_Handlers မှတဆင့်ခေါ်ဆိုမှု stack ကိုခြေရာခံခြင်း

ရှုပ်ထွေးသော PHP applications များတွင် cache handlers မျိုးစုံကို sequence ကိုခေါ်ယူနိုင်သည်။ ob_list_handlers ကိုအသုံးပြုပြီး cache handlers ၏အမိန့်ကိုအချိန်မှန်ကိုကြည့်ရှုရန်ခွင့်ပြုသည်။ ဥပမာအားဖြင့်, cache ပါဝင်မှုကိုမျှော်လင့်ထားသည့်အတိုင်းမလုပ်ဆောင်နိုင်ကြောင်းသင်ကြုံတွေ့ရသောအခါ cache handler stack ကိုစစ်ဆေးရန်သို့မဟုတ်ကွပ်မျက်အမှားများအစဉ်အလာအနေဖြင့်ရှိ,

ဇာတ်လမ်းဥပမာကို debugging

သင် PHP 0 က်ဘ်ဆိုဒ်ကိုတီထွင်နေပြီးအချို့သော dynamic content ကိုသင်တီထွင်နေသည်ဆိုပါစို့။ ဒါပေမယ့်သင်က cached contents ကိုမျှော်လင့်ထားသည့်အတိုင်းသို့မဟုတ်မှန်ကန်စွာမပြုပြင်မွမ်းမံခြင်းမပြုသည့်အတိုင်းလုပ်ငန်းများ၌မလုပ်ဆောင်နိုင်ကြောင်းသင်တွေ့ရှိရသည်။ ဤအချိန်တွင်သင်သည် ob_list_handlers () ကိုသုံးနိုင်သည်။

 <?php
// output cache ကိုစတင်ပြီးလက်ကိုင်မျိုးစုံကိုသုံးပါ
ob_start(function($buffer) {
    return strrev($buffer);  // output အကြောင်းအရာကိုပြောင်းပြန်
});
ob_start(function($buffer) {
    return strtoupper($buffer);  // output ကိုစာလုံးအကြီးသို့ပြောင်းပါ
});

// လက်ရှိ cache handler ကိုကြည့်ပါ
$handlers = ob_list_handlers();
print_r($handlers);

// output ကိုအကြောင်းအရာ
echo "ဒီစမ်းသပ်မှု string ကိုဖြစ်ပါတယ်。";

// cache နှင့် output ကိုအဆုံးသတ်
ob_end_flush();
?>

ဤဥပမာတွင် ob_list_handlers () သည် ပြောင်းဝင်လာခြင်းနှင့်အရင်းအနှီးကိုင်တွယ်သူများ၏အမိန့်ကိုပြလိမ့်မည်။ ဤနည်းအားဖြင့် PHP output cache ၏ handler ကိုအလွယ်တကူစစ်ဆေးပြီး debug လုပ်နိုင်သည်။