Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

Библиотека :: Компьютеры и Программирование :: Котеров Д. В. - Самоучитель PHP 4
<<-[Весь Текст]
Страница: из 287
 <<-
 
 причем расположенные в том же самом файле. Но в 
ситуации с разделением шаблона на footer и header мы, наоборот, должны хранить 
большинство открывающих тэгов в одном файле, а закрывающие — в другом. В лис- 
тинге 30.8 приведен пример верхней части шаблона страницы. 

Часть V. Приемы программирования на PHP 432 
Листинг 30.8. Файл header.htm 
 
 

Добрый день.

Карта раздела: . . . Видите, файл оборвался на открывающем тэге. Теперь взглянем на листинг 30.9: Листинг 30.9. Файл footer.htm
Он состоит исключительно из одних закрывающих тэгов. Потенциально, добавив в header.htm новый открывающий тэг, мы можем забыть закрыть его в footer.htm. Кроме того, такая конструкция несколько противоречит логике: две похожих по смыслу части шаблона содержатся в разных файлах. Мы уже обсуждали это выше и пришли к выводу, что данное построение оказывается довольно неудобным. Сложность смены шаблона у части страниц Еще один недостаток описанной схемы следует из предыдущего. Каждая страница должна "знать", где расположены файлы header.htm и footer.htm. Пусть у нас на сайте есть каталог, в котором "лежат" сотни файлов. Во время разработки оказалось, что шаблон для всех файлов в этом каталоге должен отличаться от шаблона всех ос- тальных страниц (которых также немало). Значит, требуется создать еще одну пару header- и footer-файлов, назвав их, например, header1.htm и footer1.htm. Это в общем-то не представляет особой проблемы, сложность в другом: придется заменять ссылки во всех файлах каталога. Можно, конечно, сделать это посредством глобаль- ных поиска и замены при помощи какого-нибудь текстового редактора (например, HomeSite фирмы Allaire), но, согласитесь, это решение выглядит как явно "лобовое". Кроме того, если мы имеем доступ к сайту только с использованием FTP, нам при- дется "скачивать" все страницы, редактировать их, а затем опять копировать на сер- вер. Естественно, для крупных информационных сайтов такие "накладные расходы" просто неприемлемы. Возможно единственное решение этой проблемы — заставить страницы "наследо- вать" ссылку на шаблон каталога (или его родительского каталога), в котором они Глава 30. Код и шаблон страницы 433 находятся. Таким образом, поправив эту ссылку в информации о каталоге, мы авто- матически изменим шаблон и у всех страниц в нем. Для сравнительно небольших систем все же существует путь, обходящий, хоть и не очень удачно, рассматриваемую проблему. А именно, можно для каждого раздела сайта использовать отдельную пару header- и footer-файлов. В дейст- вительности же эти файлы будут представлять собой лишь символические ссылки на "настоящие" шаблоны. Правда, эта схема работает лишь в системах Unix. Кроме того, она нисколько не упрощает ситуацию, когда разработчики решили перенести часть страниц из одного раздела в другой (сменив при этом их шаблоны). Что такое шаблонизатор? Итак, мы вновь столкнулись с множеством трудноразрешимых накладок (возможно, выглядящих для многих с первого взгляда как надуманные). Когда же они закончат- ся, спросите вы? Отвечаю: прямо сейчас. Давайте взглянем "в корень" описанных выше сложностей. Почему они вообще воз- никают в этой задаче? Нетрудно догадаться: опять же из-за излишних зависимостей данных. Помните, эти зависимости привели нас в свое время к необходимости пере- хода от двухуровневой схемы построения сценариев к трехуровневой? Теперь они подводят нас к идее шаблонизатора. Вспомним, что мы сделали тогда, чтобы убрать зависимости. Мы поменяли местами "поставщика" и "исполнителя". Идея выполнить обратную перестановку кажется аб- сурдной, т. к. мы опять придем к тому, с чего начали. Конечно, мы не будем так де- лать. Зададимся отвлеченным вопросом: что предпринимает общество, когда перед ним возникает чересчур большое количество нерешенных и необъяснимых задач? Оно придумывает себе богов. В программировании — то же самое. Раз мы не можем больше сослаться ни на генератор данных, ни на шаблон, значит, настало время реа- лизовать нечто третье, "бога", управляющего всей системой в совокупности и распре- деляющего
 
<<-[Весь Текст]
Страница: из 287
 <<-