PHP တွင် Apcu_entry သည် APCU_Entery သည်အလိုအလျောက် cache ကိုစတင်အကောင်အထည်ဖော်ရန်အတွက် APCU extension မှပေးထားသောအစွမ်းထက်သည့်လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ သတ်မှတ်ထားသော cache ခလုတ်ကိုမတည်ရှိပါက countback function ကိုအလိုအလျောက်ခေါ်ဆိုပါလိမ့်မည်။ ၎င်းသည် cache logic ကိုအလွန်ရိုးရှင်းလွယ်ကူပြီးကုဒ်ထိရောက်မှုကိုတိုးတက်စေသည်။
သို့သော်တစ်ခါတစ်ရံ apcu_entry ကိုအသုံးပြုသောအခါ cache သည်ထိရောက်မှုမရှိသောအခြေအနေများကြုံတွေ့ရနိုင်သည်။ ဤဆောင်းပါးသည် apcu_entry cache သည်ထိရောက်မှုမရှိသောဘုံပြ problems နာများကိုဖြေရှင်းရန်နှင့် Debug ပြ debugget ကိုကူညီရန်တိကျသောကုဒ်များကိုပေါင်းစပ်ပါလိမ့်မည်။
<?php
$key = 'user_123';
$value = apcu_entry($key, function() {
// ဒေတာဘေ့စ်စုံစမ်းမေးမြန်းမှုကို Simulate
return 'user_data_from_db';
});
echo $value;
အထက်ပါကုဒ်တွင် cache ထဲတွင် User_123 မရှိပါကအချက်အလက်များကိုထုတ်လုပ်ရန်နှင့်သိမ်းဆည်းရန် callback function ကိုခေါ်လိမ့်မည်။ အဆိုပါ cache ကိုတိုက်ရိုက်ခေါ်ဆိုမှုကိုတိုက်ရိုက်ဖတ်ပါလိမ့်မည်။
ရောဂါလက္ခဏာများ - apcu_entry ကို ခေါ်ခြင်းသို့မဟုတ် cache အပြုအမူကိုခေါ်ဆိုခြင်းဖြင့်အမှားတစ်ခုထုတ်ဖော်ပြောဆိုသည်။
debug :
if (!extension_loaded('apcu')) {
die('APCu extension ကို install လုပ်သို့မဟုတ်ဖွင့်မထားဘူး,ကျေးဇူးပြု. extension ကို install လုပ်ပါ。');
}
APC.ENABLED = 1 သည် PHP configuration ကိုသေချာစေရန်နှင့် PHP 0 န်ဆောင်မှုကိုပြန်လည်စတင်ပါ။
ပုံမှန်အားဖြင့် APCU Cache သည် CLI mode တွင်မမှန်ကန်ပါ။ apc.enable_Cli ကို 1 ကိုသတ်မှတ်ရန်လိုအပ်သည်။
debug :
var_dump(ini_get('apc.enable_cli')); // လှျင် 0,ဒါပေမဲ့CLIcache မပါဘဲ mode ကို
ဖြေရှင်းနည်းသည် Php.ini ကို ပြုပြင်ရန်ဖြစ်သည်။
apc.enable_cli=1
ထို့နောက် CLI ကို restart လုပ်ပါ။
cache နေရာမလုံလောက်ပါကဒေတာအဟောင်းကိုပြန်လည်အသုံးပြုနိုင်သည်။
debug :
APCU Cache စာရင်းအင်းစာရင်းအင်းများကိုကြည့်ပါ။
print_r(apcu_cache_info());
Cache Space အသုံးပြုမှုနှင့်အပိုင်းအစများကိုလေ့လာပါ။
cache space ကိုတိုးမြှင့်ဖို့ apc.shm_size configuration ကိုချိန်ညှိပါ။
ဝင်လာသော cache key name သည်တည်ငြိမ်။ ထူးခြားသော string ကိုသေချာအောင်လုပ်ပါ။ Dynamically ထုတ်ပေးသောသော့အမည်များသည် cache ကိုထိမိစေနိုင်သည်။
အကယ်. ချွင်းချက်တစ်ခုက callback function ကိုအတွင်း၌ပစ်ချခြင်းသို့မဟုတ် NULL ပြန်လာလျှင် apcu_entry ကို cache ကိုရေးထားမည်မဟုတ်ပါ။
debug :
$value = apcu_entry('key', function() {
try {
// ဖြစ်နိုင်သောအမှားများ
return some_function();
} catch (Exception $e) {
error_log($e->getMessage());
return false; // သို့မဟုတ်အခြားကျိုးကြောင်းဆီလျော်သောပုံမှန်တန်ဖိုးများ
}
});
<?php
$key = 'sample_key';
if (!extension_loaded('apcu')) {
die('ကျေးဇူးပြု. install လုပ်ပါ APCu တိုးချဲ့');
}
if (PHP_SAPI === 'cli' && ini_get('apc.enable_cli') != '1') {
die('CLI mode မှာ APCu cache ကိုဖွင့်မထားပါ,ကျေးဇူးပြုပြီးသတ်မှတ်ပါ apc.enable_cli=1');
}
$value = apcu_entry($key, function() {
// ခြွင်းချက်များ Simulate
if (rand(0,1) === 0) {
throw new Exception('ခြွင်းချက်များ Simulate,cache ကိုရေးသားခြင်းမရှိပါ');
}
return 'cache ကိုဒေတာ';
});
var_dump($value);
print_r(apcu_cache_info());
APCU extension ကို install လုပ်ပြီးဖွင့်ထားကြောင်းအတည်ပြုပါ။
CLI mode ကို apc.enable_cli ကို ဖွင့်ရန်လိုအပ်သည်။
cache နေရာလုံလောက်မှုရှိမရှိစစ်ဆေးပါ။
cache key name သည်ထူးခြား။ တည်ငြိမ်ကြောင်းသေချာပါစေ။
ချွင်းချက်ကိုရှောင်ရှားရန် callback function ကိုလုံခြုံ။ တည်ငြိမ်မှုရှိသင့်သည်။
အထက်ပါအဆင့်များမှတဆင့် apcu_entry ကို အသုံးပြုသောအခါ cache ကိုအခြေခံအားဖြင့်ဖြေရှင်းနိုင်သည်။
APCU သတင်းအချက်အလက်ပိုမိုများပြားရန်အတွက် https://gitbox.net/mcu.htmm ကိုရည်ညွှန်းသည်