PHPде файлдер боюнча движок

Бизге шаблон файлын түзүүгө мүмкүндүк бере турган, андан URLга жараша ар түрдүү контент туташтырыла турган сайттын движогун ишке ашырабыз.

Биздин баракчабыздын түзүлүшү төмөнкүдөй болсун:

layout.php<!DOCTYPE html>
<html>
  <head>
    <title>title</title>
  </head>
  <body>
    <header>
      header
    </header>
    <main>
      content
    </main>
    <header>
      footer
    </header>
  </body>
</html>

Контент киргизилиши керек болгон жерге, биз тапкан койгон киргизүү буйругуңузду киргизели, мисалы мындай: {{ content }}. Сайтыбыздын шаблонун өзгөртөлү:

layout.php<!DOCTYPE html>
<html>
  <head>
    <title>title</title>
  </head>
  <body>
    <header>
      header
    </header>
    <main>
      {{ content }}
    </main>
    <header>
      footer
    </header>
  </body>
</html>

Эми view деген папка түзөбүз, ага контент файлдарын жайгаштырабыз. Так ушул папкага же анын ичиндеги папкаларга.

Биринчи файл мындай болот:

view/page1.php<div>
  content 1
</div>

Экинчи файл мындай болот:

view/dir/page2.php<div>
  content 2
</div>

Үчүнчү файл мындай болот:

view/dir/sub/page3.php<div>
  content 3
</div>

Эми даректик саптан келген URL боюнча туура файл тартылып алынсын. Биздин учурда /page1 урлу боюнча биринчи файл, /dir/page2 урлу боюнча экинчи, жана /dir/sub/page3 урлу боюнча үчүнчү файл алынсын.

Ишке ашырууну баштайлы. Адегенде .htaccess файлында, ресурстардын файлдарынан башка бардык суралган даректер, index.php баракчасына багытталышын кылалы:

.htaccessRewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} !\.(js|css|ico|jpg|png|gif)$
RewriteRule .+ index.php

index.php баракчасында өзгөрмөгө суралган URLди алалы:

index.php<?php
  $url = $_SERVER['REQUEST_URI'];
?>

Андан кийин шаблон файлынын текстин алалы:

index.php<?php
  $layout = file_get_contents('layout.php');
?>

Эми URL боюнча view папкасынан туура контент файлын алалы:

index.php<?php
  $content = file_get_contents('view' . $url . '.php');
?>

Шаблондун текстинде биз койгон буйрукту файлдан алынган контентке алмаштыралы:

index.php<?php
  $layout = str_replace('{{ content }}', $content, $layout);
?>

Браузерге коюлган шаблон менен шаблон файлын чыгаралы:

index.php<?php
  echo $layout;
?>

Баарын чогултуп, төмөнкү кодду алабыз:

index.php<?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;
?>
Задание 1

Сүрөттөлгөн файлдар боюнча движокту ишке ашырыңыз.