PHP ဖိုင်များပေါ်အခြေခံသော Engine
ဝက်ဘ်ဆိုက်တစ်ခု၏ engine ကို အကောင်အထည်ဖော်ပါမည်။ ထို engine သည် URL ပေါ်မူတည်၍ အကြောင်းအရာများကွဲပြားစွာ ချိတ်ဆက်နိုင်မည့် တမ်းပလိတ်ဖိုင်တစ်ခု ပြုလုပ်ခွင့်ပေးပါလိမ့်မည်။
ကျွန်ုပ်တို့၏ စာမျက်နှာ ဖွဲ့စည်းပုံသည် အောက်ပါအတိုင်း ပုံစံဖြင့် ရှိနေသည်ဟု ယူဆပါစို့။
<!DOCTYPE html>
<html>
<head>
<title>title</title>
</head>
<body>
<header>
header
</header>
<main>
content
</main>
<header>
footer
</header>
</body>
</html>
အကြောင်းအရာ ထည့်သွင်းရမည့် နေရာတွင်
ကျွန်ုပ်တို့ စိတ်ကူးဖြင့် ထည့်သွင်းရန် အတွက်
အမိန့်ပေးချက် တစ်ခုကို ထည့်သွင်းကြပါစို့။
ဥပမာ ဤကဲ့သို့ဖြစ်သည် {{ content }}။
ကျွန်ုပ်တို့၏ ဝက်ဘ်ဆိုက် တမ်းပလိတ်ကို ပြုပြင်ပါမည်။
<!DOCTYPE html>
<html>
<head>
<title>title</title>
</head>
<body>
<header>
header
</header>
<main>
{{ content }}
</main>
<header>
footer
</header>
</body>
</html>
ယခု view ဖိုဒါတစ်ခု ပြုလုပ်ပါမည်။ ထိုဖိုဒါအတွင်းသို့
အကြောင်းအရာ ဖိုင်များကို ထည့်သွင်းပါမည်။ ဤဖိုဒါအတွင်း၌ပင်
သို့မဟုတ် ဖိုဒါခွဲများအတွင်း၌ ဖြစ်နိုင်သည်။
ပထမဆုံး ဖိုင်သည် ဤကဲ့သို့ဖြစ်လိမ့်မည်။
<div>
content 1
</div>
ဒုတိယ ဖိုင်သည် ဤကဲ့သို့ဖြစ်လိမ့်မည်။
<div>
content 2
</div>
တတိယ ဖိုင်သည် ဤကဲ့သို့ဖြစ်လိမ့်မည်။
<div>
content 3
</div>
ယခု address bar မှ URL အလိုက်
သက်ဆိုင်ရာ ဖိုင်ကို ဆွဲယူလာစေရန် ပြုလုပ်ပါစို့။
ကျွန်ုပ်တို့၏ အခြေအနေတွင် /page1 URL
အတွက် ပထမဆုံးဖိုင်၊ /dir/page2 URL
အတွက် ဒုတိယဖိုင်၊ နှင့် /dir/sub/page3
URL အတွက် တတိယဖိုင် ဖြစ်ပါမည်။
အကောင်အထည်ဖော်ခြင်းကို စတင်ပါမည်။ ဦးစွာ .htaccess
ဖိုင်တွင် အရင်းအမြစ်ဖိုင်များမှအပ အခြားသော တောင်းဆိုသော
လိပ်စာများအားလုံးကို index.php စာမျက်နှာသို့
လမ်းညွှန်ပြောင်းလဲစေရန် ပြုလုပ်ပါမည်။
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !\.(js|css|ico|jpg|png|gif)$
RewriteRule .+ index.php
index.php စာမျက်နှာတွင် တောင်းဆိုသော URL ကို
ကိန်းရှင်၌ ရယူပါမည်။
<?php
$url = $_SERVER['REQUEST_URI'];
?>
ထို့နောက် တမ်းပလိတ်ဖိုင်မှ စာသားကို ရယူပါမည်။
<?php
$layout = file_get_contents('layout.php');
?>
ယခု URL အလိုက် view ဖိုဒါမှ
သက်ဆိုင်ရာ အကြောင်းအရာ ဖိုင်ကို ရယူပါမည်။
<?php
$content = file_get_contents('view' . $url . '.php');
?>
တမ်းပလိတ်စာသားအတွင်း ကျွန်ုပ်တို့ စိတ်ကူးဖြင့် ပြုလုပ်ထားသော အမိန့်ပေးချက်ကို ဖိုင်မှ ရယူထားသော အကြောင်းအရာဖြင့် အစားထိုးပါမည်။
<?php
$layout = str_replace('{{ content }}', $content, $layout);
?>
ထည့်သွင်းပြီးသား တမ်းပလိတ်ပါသည့် တမ်းပလိတ်ဖိုင်ကို browser သို့ ထုတ်ပြပါမည်။
<?php
echo $layout;
?>
အားလုံးကို စုစည်းပြီး အောက်ပါကုဒ်ကို ရရှိပါမည်။
<?php
$url = $_SERVER['REQUEST_URI'];
$layout = file_get_contents('layout.php');
$content = file_get_contents('view' . $url . '.php');
$layout = str_replace('{{ content }}', $content, $layout);
echo $layout;
?>
ဖော်ပြထားသော ဖိုင်များပေါ်အခြေခံသည့် engine ကို အကောင်အထည်ဖော်ပါ။