0 က်ဘ်ဆိုက်ဖွံ့ဖြိုးတိုးတက်မှုတွင်အသုံးပြုသူ authentication into information ၏လုပ်ဆောင်မှုသည်များသောအားဖြင့် database မေးမြန်းချက်များသို့မဟုတ်အခြားရှုပ်ထွေးသောတွက်ချက်မှုများပါ 0 င်သည်။ PHP ၏ APCU တိုးချဲ့မှုသည်အသုံးပြုသူ authentication information ကိုသိမ်းဆည်းရန်အသုံးပြုသောထိရောက်သော cache engine စနစ်ကိုထောက်ပံ့ပေးသည်။ ဤဆောင်းပါးတွင် APCu_entry function ကိုထိရောက်စွာ cache user authentication information ကိုအသုံးပြုရန်မည်သို့အသုံးပြုရမည်ကိုလေ့လာမည်။
apcu_entry သည် PHP ၏ APCU တိုးချဲ့ခြင်းဖြင့်ထောက်ပံ့ပေးသော cache function ဖြစ်သည်။ ၎င်းသည်အချက်အလက်များကို cache ထဲတွင်သိမ်းဆည်းရန်အသုံးပြုသည်။ ဒေတာများတည်ရှိပြီးပါက၎င်းသည် cache ထဲရှိတန်ဖိုးကိုပြန်လည်ရယူသည်။ ဒေတာမရှိပါက၎င်းသည်အချက်အလက်များကို calmback function မှတဆင့်အချက်အလက်များကိုထုတ်ပေးသည်။ သာမန် apcu_store သို့မဟုတ် apcu_add နှင့်မတူဘဲ apcu_entry သည် သော့မရှိသေးသည့်အခါ cardback ကိုအလိုအလျောက်ထုတ်ပေးသည်။
အသုံးပြုသူ၏ authentication ကိုကိုင်တွယ်သည့်အခါအသုံးပြုသူ၏မည်သူမည်ဝါဖြစ်ကြောင်းအတည်ပြုရန်နှင့်သက်ဆိုင်ရာအချက်အလက်များ, အခန်းကဏ် sections များစသည်တို့ကိုပြန်လည်ရယူရန်လိုအပ်သည်။ ဒေတာဘေ့စ်ကိုအချိန်တိုင်းမေးမြန်းခြင်းမှရှောင်ရှားရန်အတွက် apcu_entry ကို အသုံးပြု. အသုံးပြုသူ၏ authentication information ကို cache လုပ်ရန်သင်အသုံးပြုနိုင်သည်။
ပထမ ဦး စွာသင်၏ PHP ပတ်ဝန်းကျင်တွင် APCU extension ကို install လုပ်ပြီးဖွင့်ထားကြောင်းသေချာစေရန်လိုအပ်သည်။ ၎င်းကို install မလုပ်ပါကအောက်ပါ command ကိုသုံးနိုင်သည်။
sudo apt-get install php-apcu
sudo service apache2 restart
PHP.INI ဖိုင်တွင် APCU extension ကို enable လုပ်ပါ။
extension=apcu.so
လက်တွေ့ကျသော application များတွင်အသုံးပြုသူ authentication ကိုသတင်းအချက်အလက်များကိုဒေတာဘေ့စ်တွင်သိမ်းဆည်းထားသည်။ သုံးစွဲသူ၏ authentication ကိုဒေတာဘေ့စ်မှရယူရန် Callback function ကိုကျွန်ုပ်တို့လိုအပ်သည်။
function fetch_user_auth_info($user_id) {
// ဤတွင်အသုံးပြုသူရဲ့ authentication ကိုအချက်အလက်များကိုဒေတာဘေ့စ်မှတစ်ဆင့်မေးမြန်းခြင်းကိုယူဆသည်။
// ဥပမာအားဖြင့်:အသုံးပြုသူ၏အခန်းကဏ် and ကိုနှင့်ခွင့်ပြုချက်ကိုမေးမြန်းပါ
$db = new PDO('mysql:host=localhost;dbname=your_database', 'username', 'password');
$stmt = $db->prepare("SELECT role, permissions FROM users WHERE id = :user_id");
$stmt->execute(['user_id' => $user_id]);
return $stmt->fetch(PDO::FETCH_ASSOC);
}
ထို့နောက်ကျွန်ုပ်တို့သည် apcu_entry function ကို အသုံးပြု. သုံးစွဲသူ၏ authentication information ကို cache လုပ်ရန်ကျွန်ုပ်တို့အသုံးပြုနိုင်သည်။ အသုံးပြုသူ ID ကို cache ခလုတ်အဖြစ်အသုံးပြုသည်ဟုယူဆပြီးစစ်မှန်ကြောင်းအထောက်အထားကြောင်းသတင်းအချက်အလက်များကို cache ထဲတွင်သိမ်းဆည်းထားသည်ဟုယူဆပါ။
function get_user_auth_info($user_id) {
// အသုံးပြု apcu_entry Cache အသုံးပြုသူ authentication ကိုသတင်းအချက်အလက်
$cache_key = 'user_auth_' . $user_id;
return apcu_entry($cache_key, function() use ($user_id) {
// cache ထဲမှာဒေတာမရှိလျှင်,ထို့နောက်ဒေတာဘေ့စ်ကိုရှာဖွေရန်နှင့်ဒေတာများကိုပြန်ပို့ရန် callback function ကိုခေါ်ပါ
return fetch_user_auth_info($user_id);
});
}
ဤဥပမာတွင် apcu_entry သည် cache @ {$ user_id {$ user_id {$ user_id} ရှိပြီးသားရှိမရှိစစ်ဆေးသည်။ အကယ်. တည်ရှိပါက၎င်းသည်ယာယီ cactred authentication ကိုသတင်းအချက်အလက်များကိုတိုက်ရိုက်ပြန်ပို့လိမ့်မည်။ အကယ်. ၎င်းသည်မတည်ရှိပါကဒေတာဘေ့စ်မှသုံးစွဲသူ၏ authentication ကိုသတင်းအချက်အလက်များကိုရယူရန်နှင့် APCU မှ APCU မှ APCU သို့သိမ်းဆည်းရန် FETT_USER_AUTH_INFO function ကိုခေါ်လိမ့်မည်။
Cache Logic ကိုအလိုအလျောက်ကိုင်တွယ်မည့် authentication လုပ်ငန်းစဉ်အတွင်း Get_user_Auth_info function ကိုတိုက်ရိုက်ခေါ်ဆိုနိုင်သည်။
$user_id = 123; // လက်ရှိအသုံးပြုသူယူဆ ID ဟုတ်ကဲ့ 123
$user_auth_info = get_user_auth_info($user_id);
// အသုံးပြု用户的认证信息
if ($user_auth_info['role'] == 'admin') {
echo "Welcome, admin!";
} else {
echo "Access denied.";
}
Database Query များကိုလျှော့ချပါ ။ အသုံးပြုသူ၏ authentication information ကို cache လုပ်ခြင်းဖြင့်ဒေတာဘေ့စ်သို့ 0 င်ရောက်နိုင်သည်။
အလိုအလျောက် Cache Generation - apcu_entry function သည် cache cache များကိုဖန်တီးရန် Cache Cache ကိုဖန်တီးရန် Cache Content ကိုထုတ်လုပ်ရန် countback ကိုအလိုအလျောက်အကောင်အထည်ဖော်လိမ့်မည်။
cache သက်တမ်းရှိထိန်းချုပ်မှု - APCU သည် cache ကိုရှင်းလင်းသည်အထိဒေတာကို cache ထဲ၌အမြဲတမ်းသိမ်းဆည်းထားလိမ့်မည်။ သို့သော်, Cache သက်တမ်းကုန်ဆုံးချိန်ကိုလိုအပ်သလိုသို့မဟုတ်အခြား cache ပေါ်လစီများကိုအသုံးပြုရန်လည်းသင်ပြုလုပ်နိုင်သည်။
APCU သည်ရိုးရှင်းသောနှင့်ထိရောက်သော cache ယန္တရားကိုထောက်ပံ့သော်လည်း cache သက်တမ်းကုန်ဆုံးခြင်း၏စီမံခန့်ခွဲမှုသည်အရေးပါသောကိစ္စတစ်ခုဖြစ်သည်။ ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်သင်သည် cache ကိုပုံမှန်သန့်ရှင်းစင်ကြယ်စွာသန့်ရှင်းရေးလုပ်ရန်သို့မဟုတ် Cache သက်တမ်းကုန်ဆုံးချိန်ကိုသတ်မှတ်ရန်လိုအပ်နိုင်သည်။ cache ကိုဖျက်ရန် apcu_delete ကို သုံးနိုင်သည်သို့မဟုတ် cache ၏ရှင်သန်ရပ်တည်ရေးကာလကို apcu_ttl နှင့်ပေါင်းစပ်ထားနိုင်သည်။
// cache ကိုဖျက်ပစ်ပါ
apcu_delete('user_auth_' . $user_id);
// cache သက်တမ်းကုန်ဆုံးချိန်ကိုသတ်မှတ်ပါ(ဥပမာအားဖြင့် 1 နာရီ)
apcu_store('user_auth_' . $user_id, $user_auth_info, 3600);
apcu_entry function ကို cache အသုံးပြုသူ authentication information ကိုအသုံးပြုရန်အတွက်အလွန်ထိရောက်သောနည်းဖြင့် အသုံးပြု. စနစ်စွမ်းဆောင်ရည်ကိုသိသိသာသာတိုးတက်စေနိုင်သည်။ ဒေတာဘေ့စ်သို့အလိုအလျောက်ထုတ်ပေးခြင်းနှင့်မကြာခဏမေးမြန်းချက်များကိုဒေတာဘေ့စ်သို့လျှော့ချခြင်းအားဖြင့် developer များက application response use န်းကျင်နှင့်သယံဇာတစားသုံးမှုကိုအကောင်းဆုံးဖြစ်စေနိုင်သည်။ ကျိုးကြောင်းဆီလျော်သော cache စီမံခန့်ခွဲမှုနည်းဗျူဟာများဖြင့်စနစ်၏တည်ငြိမ်အေးချမ်းရေးနှင့်ပမာဏကိုပိုမိုတိုးတက်စေနိုင်သည်။