PHP හි ගොනු මත පදනම් වූ එන්ජිම
වෙබ් අඩවියේ යන්ත්රණය ක්රියාත්මක කරමු, එයට අනුව 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>
දැන් අපි එය ක්රියාත්මක කරමු, එවිට URL
ලිපින පටියෙන් අනුරූප
අන්තර්ගත ගොනුව ලබා ගනී. අපගේ නඩුවේ, URL
/page1 සඳහා
පළමු ගොනුව වනු ඇත, URL /dir/page2
සඳහා - දෙවනුව, සහ URL /dir/sub/page3
සඳහා - තෙවනුව.
ක්රියාත්මක කිරීම ආරම්භ කරමු. පළමුව, ගොනුවේ
.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);
?>
බ්රවුසරයට අච්චු ගොනුව සමඟින් අච්චු ගොනුව ප්රතිදානය කරමු ආදේශ කරන ලද අච්චුව:
<?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;
?>
විස්තර කරන ලද ගොනු මත පදනම් වූ එන්ජිම ක්රියාත්මක කරන්න.