Injini ya Faili katika PHP
Tutatekeleza injini ya tovuti, ambayo itaturuhusu kuunda faili la kiolezo, ambalo kulingana na URL kitaunganishwa na maudhui mbalimbali.
Muundo wa ukurasa wetu uonekane kama ifuatavyo:
<!DOCTYPE html>
<html>
<head>
<title>kichwa</title>
</head>
<body>
<header>
kichwa
</header>
<main>
maudhui
</main>
<header>
kijachini
</header>
</body>
</html>
Wacha mahali ambapo maudhui yanapaswa kuingizwa
tuingize amri yetu ya kuingiza, kwa mfano kama hii:
{{ content }}. Tubadilishe kiolezo cha tovuti yetu:
<!DOCTYPE html>
<html>
<head>
<title>kichwa</title>
</head>
<body>
<header>
kichwa
</header>
<main>
{{ content }}
</main>
<header>
kijachini
</header>
</body>
</html>
Sasa tufanye folda view, ambayo
tutaweka faili za maudhui. Hasa kwenye folda hii
au kwenye folda ndogo.
Faili ya kwanza itakuwa hivi:
<div>
maudhui 1
</div>
Faili ya pili itakuwa hivi:
<div>
maudhui 2
</div>
Faili ya tatu itakuwa hivi:
<div>
maudhui 3
</div>
Sasa tufanye ili kwa kutumia URL
kutoka kwa mstari wa anua faili inayofanana
itafutwe. Kwa upande wetu, kwa anua /page1
itakuwa faili ya kwanza, kwa anua /dir/page2
- ya pili, na kwa anua /dir/sub/page3
- ya tatu.
Tuanze utekelezaji. Kwanza kwenye faili
.htaccess tufanye ili maombi yote
ya anua, isipokuwa faili za rasilimali, zielekezwe
kwenye ukurasa index.php:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !\.(js|css|ico|jpg|png|gif)$
RewriteRule .+ index.php
Kwenye ukurasa index.php tutapata kwenye kigezo
URL iliyoombwa:
<?php
$url = $_SERVER['REQUEST_URI'];
?>
Kisha tutapata maandishi ya faili la kiolezo:
<?php
$layout = file_get_contents('layout.php');
?>
Sasa kwa URL tutapata kutoka kwa folda view
faili inayofanana ya maudhui:
<?php
$content = file_get_contents('view' . $url . '.php');
?>
Tubadilishe kwenye maandishi ya kiolezo amri yetu ya kuingiza kwa maudhui yaliyopatikana kutoka kwa faili:
<?php
$layout = str_replace('{{ content }}', $content, $layout);
?>
Tutoze kwenye kivinjari faili la kiolezo na kiolezo kilichowekwa:
<?php
echo $layout;
?>
Tukusanye pamoja na tutapata msimbo ufuatao:
<?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;
?>
Tekeleza injini ya faili iliyoelezewa.