အင်တာနက်ဖွံ့ဖြိုးတိုးတက်မှုနှင့်အတူကုမ္ပဏီများနှင့်လူပုဂ္ဂိုလ်တစ် ဦး ချင်းစီသည် CMS (အကြောင်းအရာစီမံခန့်ခွဲမှုစနစ်) ကို ရွေးချယ်. ၎င်းတို့၏ကိုယ်ပိုင်ဝက်ဘ်ဆိုက်များကိုစီမံရန်ရွေးချယ်သည်။ စီးပွားရေးလုပ်ငန်းများဆက်လက်တိုးချဲ့လျက်ရှိသည်နှင့်အမျှစီးပွားရေးလုပ်ငန်းများနှင့်လူပုဂ္ဂိုလ်တစ် ဦး သည်တစ်ချိန်တည်းတွင်ဆိုဒ်များကိုစီမံရန်လိုအပ်သည်။ ယခုအချိန်တွင် CMS စနစ်သည် site multi-separts အထောက်အပံ့လုပ်ဆောင်ချက်များရှိရန်လိုအပ်သည်။ ဤဆောင်းပါးသည် PHP မှတစ်ဆင့် CMS စနစ်များကို Multi-separts functions များကိုမည်သို့အကောင်အထည်ဖော်ရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။
ပထမ ဦး စွာကျွန်ုပ်တို့သည်ဒေတာဘေ့စ်ဖွဲ့စည်းပုံကိုဒီဇိုင်းဆွဲရန်လိုအပ်သည်။ ဒေတာဘေ့စ်တွင်အောက်ပါနယ်ပယ်များတွင်ပါ 0 င်သည့်အမည်ရှိ ဝက်ဘ်ဆိုက်များကို ဖန်တီးနိုင်သည်။
ထို့အပြင် site တစ်ခုစီ၏အချက်အလက်များကိုပိုမိုကောင်းမွန်စွာစီမံနိုင်ရန်အတွက် site တစ်ခုစီအတွက်ကျွန်ုပ်တို့သည်ဒေတာဇယားများ ( သတင်း စားပွဲများ, ထုတ်ကုန် များ, ဤနည်းအားဖြင့်ဆိုက်၏အချက်အလက်များကိုဒေတာရှုပ်ထွေးမှုများကိုရှောင်ရှားရန်သီးခြားသိမ်းဆည်းထားလိမ့်မည်။
Site အမည်, ဒိုမိန်းအမည်, ခေါင်းစဉ်စသည်ဖြင့်ဆိုဒ်များအတွက် configuration information အတွက် config.php file တစ်ခုအတွက်ပြင်ဆင်မှုအချက်အလက်များကိုသတ်မှတ်နိုင်သည်။ site တစ်ခုချင်းစီအတွက် configuration information ကိုသိမ်းရန် $ siteconfigs arry ကိုသုံးနိုင်သည်။ ဒီမှာနမူနာကုဒ်တစ်ခုပါ။
// config.php
$siteConfigs = array(
'site1' => array(
'name' => 'ဆိုဘ်ဆိုက်1',
'domain' => 'www.site1.com',
'theme' => 'theme1'
),
'site2' => array(
'name' => 'ဆိုဘ်ဆိုက်2',
'domain' => 'www.site2.com',
'theme' => 'theme2'
)
);
နောက်တစ်ခုကကျွန်တော်တို့ဟာသက်ဆိုင်ရာဆိုဒ်ကိုကျွန်တော်တို့လည်ပတ်ခဲ့တဲ့ဒိုမိန်းအမည်အရ 0 င်ဖို့လိုတယ်။ entry file တွင် URL တွင် domain name ကိုခွဲခြမ်းစိတ်ဖြာခြင်းဖြင့်လက်ရှိ 0 င်ရောက်နိုင်သည့်နေရာကိုသင်ဆုံးဖြတ်နိုင်သည်။ ဥပမာများမှာအောက်ပါအတိုင်းဖြစ်သည် -
// index.php
$host = $_SERVER['HTTP_HOST'];
// မြုပ်$siteConfigsအခင်းအကျင်း,判断当前域名属于哪个ဆိုဘ်ဆိုက်
foreach ($siteConfigs as $site => $config) {
if ($config['domain'] == $host) {
$currentSite = $site;
break;
}
}
// 如果未匹配到ဆိုဘ်ဆိုက်,则默认为第一个ဆိုဘ်ဆိုက်
if (!isset($currentSite)) {
$currentSite = key($siteConfigs);
}
// 加载当前ဆိုဘ်ဆိုက်的配置信息
$siteConfig = $siteConfigs[$currentSite];
တခါတရံတွင်ကျွန်ုပ်တို့သည် CMS နောက်ခံတွင် switching switching ကိုအကောင်အထည်ဖော်ရန်လိုအပ်သည်။ ထို့ကြောင့်ကျွန်ုပ်တို့သည်စီမံခန့်ခွဲမှုအတွက်မတူညီသောဆိုဒ်များသို့လျင်မြန်စွာပြောင်းနိုင်သည်။ လက်ရှိဆိုက်ကိုသိမ်းဆည်းရန်သင်ခန်းစာသို့မဟုတ်ကွတ်ကီးများကိုသုံးနိုင်သည်။ ဒီမှာဥပမာတစ်ခုပါ။
// switch_site.php
$site = $_GET['site'];
// 判断当前ဆိုဘ်ဆိုက်是否存在
if (isset($siteConfigs[$site])) {
// 存储当前ဆိုဘ်ဆိုက်信息到session
$_SESSION['site'] = $site;
// 重定向到当前ဆိုဘ်ဆိုက်的首页或管理后台
header("Location: index.php");
}
အမှန်တကယ် application များအနေဖြင့် 0 က်ဘ်ဆိုက်၏ပြုပြင်ပြောင်းလဲရေးအချက်အလက်အပေါ် အခြေခံ. သက်ဆိုင်ရာ template သို့မဟုတ်အခြားအကြောင်းအရာများကို 0 န်ဆောင်မှုပေးနိုင်သည်။ ဤနေရာတွင် site ခေါင်းစဉ်တစ်ခုတင်ခြင်း၏ဥပမာတစ်ခုဖြစ်သည်။
// index.php
// 加载当前ဆိုဘ်ဆိုက်的主题
$templateFile = 'themes/' . $siteConfig['theme'] . '/index.php';
include($templateFile);
အထက်ပါနည်းလမ်းများမှတဆင့်ဆိုဒ်များကိုစီမံခန့်ခွဲမှုစီမံခန့်ခွဲမှုလွယ်ကူချောမွေ့စေရန် CMS စနစ်၏ Multi-site support function ကိုအကောင်အထည်ဖော်နိုင်သည်။ site တစ်ခုစီကိုဒိုမိန်းအမည်များဖြင့်ခွဲခြားနိုင်ပြီးစီမံခန့်ခွဲမှုအတွက်နေရာများကိုပြောင်းလွယ်ပြင်လွယ်ပြောင်းလွယ်ပြင်လွယ်ပြောင်းလွယ်ပြင်လွယ်ပြောင်းလွယ်ပြင်လွယ်နိုင်သည်။
ဤဆောင်းပါးသည်ဆိုက်ရောက်ဒီဇိုင်းများ, configuration file settings နှင့် site roiguration file settings နှင့် site configuration forments နှင့် site configuration information များကိုမည်သို့အသုံးပြုရမည်ကိုဤဆောင်းပါးတွင်ဖော်ပြခဲ့သည်။ ဤအဆင့်ဆင့်မှတစ်ဆင့်စနစ်တစ်ခုတွင်ဆိုဒ်များကိုစနစ်တကျ 0 တ်ဆင်ထားပြီးမတူညီသောဒိုမိန်းအမည်များအရသက်ဆိုင်ရာဆိုဒ်များကို 0 န်ဆောင်မှုပေးနိုင်သည်။