Нет, ваш подход неверен.
Вот основные недостатки вашего дизайна:
- Вы предполагаете, что header.php будет вызываться при каждом вызове страницы. Это неправильно.
- Вы предполагаете, что header.php всегда будет статическим. Это неверно.
- Вы забыли создать шаблон для самой страницы.
Главное правило, которое каждый должен выучить наизусть:
Ни один символ не должен быть отправлен в браузер, пока все данные не будут готовы.
Почему?
- Сегодня 2011 год. Эра AJAX. Что если ваш код должен будет отправлять данные в формате JSON вместо всей HTML-страницы?
- есть вещь, которая называется
HTTP header
. Иногда мы должны отправить их. И это становится невозможным, если вы уже отправили свой богато украшенный HTML-заголовок.
- это всего лишь 4-страничный сайт. Хорошо. Представьте, что вам повезло, и вы получили запрос на другой 4-страничный сайт. Вам придется менять только шаблоны и не трогать файлы движка. Это действительно большое преимущество.
- Представьте, что вы собираетесь создать собственный тег
<title>
для своих страниц на основе содержимого страницы. Разве это не очень распространенная вещь? Но вы не можете сделать это без использования шаблонов.
Итак, у вас должен быть один общий шаблон сайта, содержащий верхний и нижний колонтитулы, а также выделенные шаблоны для каждого php-скрипта.
Пример макета будет выглядеть следующим образом:
0,1. сама страница.
выводит ничего , но собирает только необходимые данные и вызывает шаблон:
<?php
//include our settings, connect to database etc.
include dirname($_SERVER['DOCUMENT_ROOT']).'/cfg/settings.php';
//getting required data
$DATA=dbgetarr("SELECT * FROM links");
$pagetitle = "Links to friend sites";
//etc
//and then call a template:
$tpl = "links.tpl.php";
include "template.php";
?>
0,2. template.php
который является вашим основным шаблоном сайта,
состоит из вашего верхнего и нижнего колонтитула:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>My site. <?=$pagetitle?></title>
</head>
<body>
<div id="page">
<?php include $tpl ?>
</div>
</body>
</html>
0,3. и наконец links.tpl.php
- это фактический шаблон страницы:
<h2><?=$pagetitle?></h2>
<ul>
<?php foreach($DATA as $row): ?>
<li><a href="<?=$row['link']?>" target="_blank"><?=$row['name']?></a></li>
<?php endforeach ?>
<ul>
легко, чисто и ремонтопригодно.