PHP တွင် session_cache_limiter ကို session-related caching ပေါ်လစီများကိုထိန်းချုပ်ရန်အသုံးပြုသည်။ ၎င်းသည်တုန့်ပြန်မှုခေါင်းစဉ်ရှိ cache control field ကိုသက်ရောက်သည်။ Prosess_cache_LIMIDER အတွက် settings အမျိုးမျိုးအတွက် settings မျိုးစုံရှိသည့်အခါ၎င်းသည် Cache ၏မူဝါဒပ conflicts ိပက်ခများဖြစ်ပေါ်စေပြီးစာမျက်နှာ၏အချိန်နှင့်တပြေးညီအတွေ့အကြုံများကိုထိခိုက်စေနိုင်သည်။
ဤဆောင်းပါးသည် Session_cache_limiter Settings Settings Settings Settings Settings ကိုကြုံတွေ့ရသောအခါ Cache Cachemency ကိုမည်သို့ရှောင်ရှားရမည်ကိုအသေးစိတ်ရှင်းပြပါမည်။
Session_cache_limiter သည် PHP session module တွင် configuration item တွင် HTTP header တွင် cache နှင့်သက်ဆိုင်သောကွက်လပ်များကိုသတ်မှတ်သည်။ ဘုံတန်ဖိုးများမှာ:
nocache (default) - cache ကိုကာကွယ်ရန် HTTP ခေါင်းစီးများကိုသတ်မှတ်ပါ,
Public : Cache proxy ကို cache cache pages ကိုခွင့်ပြုသည်။
ပုဂ္ဂလိက - browser cache ကို cache ကိုခွင့်ပြုသော်လည်း proxy cache ကိုခွင့်မပြုပါ။
private_no_expio : ပုဂ္ဂလိက ဆင်တူပေမယ့်သက်တမ်းကုန်ဆုံးမပို့ပါဘူး။
လက်ရှိတောင်းဆိုမှုကို၏ cache ကိုမူဝါဒသည် session_cache_limiter () function ကိုခေါ်ဆိုခြင်းဖြင့်ပြောင်းလဲနိုင်သည်။
code များဖြင့် session_cache_limiter () ကို ထပ်ခါတလဲလဲလုပ်ခြင်းနှင့်ကွဲပြားခြားနားသောတန်ဖိုးများကိုသတ်မှတ်ပါ ဥပမာအားဖြင့်အချို့သောအစိတ်အပိုင်းတစ်ခုသည် nocache ကို သတ်မှတ်ထားပြီးအခြားတစ်ခုမှာ လူထုအား သတ်မှတ်ထားပြီးနှစ်ခုမှာပ conflicts ိပက်ခများရှိသည်။
တတိယပါတီစာကြည့်တိုက်များ၏ default settings (သို့) မူဘောင်များသို့မဟုတ်မူဘောင်များနှင့်ပ conflict ိပက်ခစီးပွားရေးကုဒ်ချိန်ညှိချက်များနှင့်ပ conflict ိပက်ခ <br> <br> တတိယပါတီစာကြည့်တိုက်ကိုမိတ်ဆက်သည့်အခါ session_cache_limiter () ကိုလည်းစာကြည့်တိုက်အတွင်း၌လည်းခေါ်ဆိုနိုင်ပါသည်။
PHP.ini တွင် default configuration ကို Code တွင်ရှင်းလင်းပြတ်သားစွာပ conflicts ိပက်ခများ
ဤပ conflict ိပက်ခသည် cache ပေါ်လစီသည်အကျိုးသက်ရောက်ခြင်းမရှိသောကြောင့်မကိုက်ညီသော HTTP Header သတင်းအချက်အလက်များကိုမထောက်ခံသော HTTP Header သတင်းအချက်အလက်များကိုဖြစ်ပေါ်စေလိမ့်မည်။
Cache နှင့်သက်ဆိုင်သောကွက်လပ်များကိုတုန့်ပြန်မှုခေါင်းစဉ်ရှိ cache နှင့်သက်ဆိုင်သောကွက်လပ်များကို package chroub tools (Chrome developer tools tools) မှတဆင့်ကြည့်ရှုနိုင်သည်။
cache ကိုထိန်းချုပ်မှု
ကုန်ဆုံးခြင်း
Pragma
ကွဲပြားခြားနားသောစာမျက်နှာများသို့မဟုတ်စာမျက်နှာတောင်းဆိုမှုအကြိမ်ပေါင်းများစွာတုန့်ပြန်မှုခေါင်းဆောင်မှုသည်ကိုက်ညီမှုရှိကြောင်းသင်တွေ့ရှိပါက session_cache_limiter ချိန်ညှိချက်များပ conflicts ိပက်ခများဖြစ်နိုင်သည်။
session_cache_limiter () settings မျိုးစုံရှောင်ရှားရန် (ဥပမာ index.php ကဲ့သို့) စီမံကိန်းဝင်ပေါက်သို့မဟုတ်စတင်ခြင်းဖိုင်တွင်တူညီသော Project_cache_limiter () ကိုတူညီစွာခေါ်ဆိုပါ။
<?php
// ယူနီဖောင်းကန့်သတ်ချက်ကိုကန့်သတ်ထားသည် private,browser cache ကို cache ကိုခွင့်ပြုပါ။ သို့သော် proxy cache ကိုတားမြစ်သည်
session_cache_limiter('private');
// session တစ်ခုစတင်ပါ
session_start();
?>
စီမံကိန်း၏ကွဲပြားခြားနားသော module များသည် session_cache_limiter () ဟုခေါ်ဆိုနိုင်ပါကထပ်ခါတလဲလဲခေါ်ဆိုမှုများကိုရှောင်ရှားရန် static variable များကိုသို့မဟုတ်စဉ်ဆက်မပြတ်အသုံးပြုနိုင်သည်။
<?php
function setSessionCacheLimiterOnce($limiter = 'nocache') {
static $isSet = false;
if (!$isSet) {
session_cache_limiter($limiter);
$isSet = true;
}
}
setSessionCacheLimiterOnce('private');
session_start();
?>
Session.cache_LIMIDER ကို php.ini သို့မဟုတ် code တွင်ပိတ်ပြီးပြောင်းလွယ်ပြင်လွယ်ရှိစေရန် cache header ကိုသင်ကိုယ်တိုင်သတ်မှတ်နိုင်သည်။
<?php
// ချို့ငဲသောsessionအလိုအလျောက် cache ကိုကန့်သတ်
ini_set('session.cache_limiter', '');
// session တစ်ခုစတင်ပါ
session_start();
// ကိုယ်တိုင် cache header ကို set ကို set
header('Cache-Control: private, max-age=600, must-revalidate');
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 600) . ' GMT');
?>
ဤအချက်သည် cache control သည်သင်၏ထိန်းချုပ်မှုအောက်တွင်လုံးဝရှိပြီး counts ` counts_cache_limiter သို့ခေါ်ဆိုမှုများစွာကြောင့်ပ conflicts ိပက်ခများကိုရှောင်ရှားသည်။
<?php
// 关闭အလိုအလျောက် cache ကိုကန့်သတ်,ပ conflicts ိပက်ခများကိုရှောင်ပါ
ini_set('session.cache_limiter', '');
// cache ခေါင်းစီး၏စည်းလုံးစီမံခန့်ခွဲမှု
function setCustomCacheHeaders() {
header('Cache-Control: private, max-age=300, must-revalidate');
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 300) . ' GMT');
}
// session တစ်ခုစတင်ပါ
session_start();
// cache header ကိုသတ်မှတ်ပါ
setCustomCacheHeaders();
// စာမျက်နှာအကြောင်းအရာ output ကိုဥပမာ
echo '<h1>Session စာမျက်နှာမှကြိုဆိုပါသည်</h1>';
echo '<p>လက်ရှိအချိန်:' . date('Y-m-d H:i:s') . '</p>';
?>
Session_COCICE_LIMITER ပ conflicts ိပက်ခများသည် cache polical ကိုကျရှုံးစေလိမ့်မည်။
ခေါ်ဆိုမှုများစွာကိုရှောင်ရှားရန် Project_cache_LIMIDER ကို သတ်မှတ်ခြင်းသည်အကောင်းဆုံးဖြစ်သည်။
ရှုပ်ထွေးသောစီမံကိန်းများအတွက် PHP ၏အလိုအလျောက် cache limit ကိုပိတ်ပြီးသင်အစား cache header ကိုကိုယ်တိုင်ပိတ်ထားနိုင်သည်။
တုန့်ပြန်မှုခေါင်းစဉ်ကို debug လုပ်ရန် packet capture tool ကို သုံး. Cache Policy Policy ကိုချွင်းချက်ချရန်ချက်ချင်းရှာဖွေပါ။
ဆွေးနွေးခန်းက session_cache_limiter and cache header settings ကိုစီမံခြင်းသည် PHP applications များ၏တည်ငြိမ်ပြီးတသမတ်တည်း cache ကိုအပြုအမူများကိုသေချာစေရန်သော့ချက်ဖြစ်သည်။