По мере роста популярности РНР был быстро адаптирован разработчиками Web-приложений по всему миру, и одна из причин этого была связана с исключительной простотой его изучения. Легкость разработки сделала РНР одним из лучших языков быстрой разработки и прототипирования приложений. К сожалению, те же свойства, которые делают РНР столь блестящим средством быстрого прототипирования, также позволяют создавать на нем код, трудно поддающийся управлению. Разработчики вскоре обнаруживают, что по мере того, как их Web-сайты становятся все крупнее и крупнее, все более возрастает необходимость повышения степени модульности. Наиболее общим решением этой проблемы является разделение сайта на элементы, что можно сделать с помощью PHP-оператора include. Например, в большинстве случаев вы можете разделить любой Web-сайт на три элемента: заголовок, нижний колонтитул и основное содержимое. В листинге 7.1 показано, как разделить типовую Webстраницу на три сегмента.
Листинг 7.1. Типовая сегментированная Web-страница
Файл segments.php
function display_head($title="Bama типовая Web-страница") { ?>
<HTML>
<HEAD><TITLEX?=$title?></TITLEX/HEAD>
<BODY>
<TABLE CELLPADDING=O CELLSPACING=O BORDER=0>
<TR>
<TD>
<TABLE CELLPADDING=O CELLSPACING=O BORDER=0>
•CTRXTDXA HREF="products .php">T0BapH</AX/TDX/TR>
<TRXTDXA HREF="contact.php">KoHTaKT</A></TD></TR>
<TRXTDXA HREF="about.php">0 Hac</AX/TD></TR>
</TABLE>
</TD>
<TD>
function display_foot() { ?>
</TD>
</TR>
</TABLE>
</BODY>
</HTML> •
?>
Файл index.php
display_head() ; ?>
Добро пожаловать на сайт.
Внимательно, изучив листинг 7.1, вы можете обнаружить, что такой способ уже имеет определенные преимущества перед классическим подходом.
Разнесение общих элементов — заголовка и нижнего колонтитула — по разным функциям значительно упрощает задачу обслуживания всего сайта. В системе вроде этой для того, чтобы сделать что-то тривиальное, нужно внести изменения только в один файл, например, добавить ссылку на меню Web-сайта, и она изменится по всему сайту в целом. Для большинства небольших сайтов, которые создают один или два разработчика (причем оба они знакомы с РНР), система наподобие этой работает просто прекрасно.
К сожалению, для сайтов, в которых одна группа людей работает над общим видом, а другая — над PHP-сценариями, использование такой системы не дает ощутимых выгод. Хотя она и сокращает избыточность, но по-прежнему требует, чтобы код РНР был встроен непосредственно в HTML-документы.
|