предложение Юрия использовать header.php и footer.php, безусловно, обеспечивает более управляемый веб-сайт, копируя один и тот же стиль и структурную HTML через множество различных PHP-файлов. Но в соответствии с моим комментарием в другом месте это сложно реализовать, создавая хорошо сформированный HTML. Кроме того, ваш код должен быть разделен на управляемые единицы - поэтому создание и потребление «$ title», вероятно, будет в очень разных местах (области) внутри вашего кода.
Конечно, вы должны попытаться свести к минимуму количество кода, выполняющегося в контексте _main включенного файла - он должен делать только то, что явно вызывается. И использование одного файла упрощает обслуживание - например,
<?php
include('project/templater.inc.php');
$t=new template();
t->pre_output();
print "<html>\n";
$t->head("My test page");
$t->page_start();
// all entry point scripts contain something like the above, and a page_end()
// next, all the page specific stuff....
?>
<div>Hello world</div>
<?php
$t->page_end();
print "</html>";
$t->clean_up();
Многие веб-структуры решают эту проблему с помощью передней шаблона контроллера - все запросы отправляются на конкретный скрипт, который обрабатывает все общие элементы страницы (CSS зависимость/Javascript, включают пути, фрагменты общего HTML таких как навигация, проверка подлинности).
Лично я предпочитаю использовать инъекции зависимостей - где есть один инклюдник обеспечение invokable функции/методов для генерации этих фрагментов, а затем вызвать их из сценариев, адресованных непосредственно по адресам:
<?php
include("project/stdpage.inc.php");
render_page('content_for_this_page');
function content_for_this_page()
{
print "<div>Hello world</div>\n";
}
Здесь, в том числе файл делает не что иное, как определение функций, включая «render_page()», когда он вызывается, в какой-то момент он знает, что ему нужно включить какой-то специфический для страницы контент - это определяется обратным вызовом в аргументе.
«Рекомендуем заменить голову страницы на включение» - будьте осторожны с этим. Ваш код будет неуправляемым, если только ваши файлы PHP не генерируют хорошо сформированный фрагмент, т. Е. Генерируют все между «
» и «» в порядке, но не «» до «». – symcbean