PHP-de faýllar bilen işleýän döredijisini (dwižok) ýasaýarys
Bize URL-y baglylykda dürli mazmuny birikdirip biljek web sahypa döredijisini (dwižok) amala aşyralyň.
Görkezilişi ýaly, bizim sahypamyzyň gurluşy aşakdaky ýaly bolsun:
<!DOCTYPE html>
<html>
<head>
<title>title</title>
</head>
<body>
<header>
header
</header>
<main>
content
</main>
<header>
footer
</header>
</body>
</html>
Indi, mazmunyň ýerleşdirilmeli ýerine, biz oýlap tapylan bir buýruk, meselem {{ content }} ýaly birini goýalyň. Sahypamyzyň şablonyny üýtgedeliň:
<!DOCTYPE html>
<html>
<head>
<title>title</title>
</head>
<body>
<header>
header
</header>
<main>
{{ content }}
</main>
<header>
footer
</header>
</body>
</html>
Indi view (görmek) direktoriýasyny dörediň, onda mazmun faýllaryny ýerleşdireris. Diýrek şu direktoriýada ýa-da onuň içindäki direktoriýalarda.
Birinji faýl şeýle bolar:
<div>
mazmun 1
</div>
Ikinji faýl şeýle bolar:
<div>
mazmun 2
</div>
Üçünji faýl şeýle bolar:
<div>
mazmun 3
</div>
Indi, URL üsti bilen degişli faýlyň ýüklenmegini amala aşyralyň. Bizim ýagdaýymyzda, /page1 URL-i üçin birinji faýl, /dir/page2 üçin ikinji faýl we /dir/sub/page3 üçin üçünji faýl ýüklenmeli.
Amala aşyrmaga başlaýalyň. Ilki bilen, .htaccess faýlynda, resurs faýllaryndan başga ähli soraglary index.php sahypasyna gönükdirmek üçin aşakdaky ýaly edeliň:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !\.(js|css|ico|jpg|png|gif)$
RewriteRule .+ index.php
index.php sahypasynda, soralýan URL-i üýtgeýjide alyň:
<?php
$url = $_SERVER['REQUEST_URI'];
?>
Soňra, şablon faýlynyň tekstiňi alyň:
<?php
$layout = file_get_contents('layout.php');
?>
Indi, URL bilen view direktoriýasyndan degişli mazmun faýlyny alyň:
<?php
$content = file_get_contents('view' . $url . '.php');
?>
Şablondaky tekstiň içinde biziň oýlap tapylan buýrugymyzy faýldan alynan mazmun bilen çalyşdyryň:
<?php
$layout = str_replace('{{ content }}', $content, $layout);
?>
Goýlan şablon bilen şablon faýlyny brauzere çykaryň:
<?php
echo $layout;
?>
Hemmesini bir ýere jemläň we aşakdaky kody alyň:
<?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;
?>
Düşündirilen faýl döredijisini (dwižok) amala aşyryň.