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

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

Библиотека :: Компьютеры и Программирование :: Котеров Д. В. - Самоучитель PHP 4
<<-[Весь Текст]
Страница: из 287
 <<-
 
вается. Его дело — 
"красиво" 
вывести содержимое массива $Book, "и точка". К тому же он почти не содержит ко- 

да на PHP (разве что самый минимум, без которого никак не обойтись). А значит, 
дизайнеру будет легко изменять внешний вид книги. 
Недостатки 
У любой медали есть оборотная сторона и, как часто бывает, от ее качества 
зависит 
довольно много. Имеется она и у двухуровневой схемы построения сценариев. 
Давай- 
те систематизируем все недостатки и постепенно будем их исправлять. 

Часть V. Приемы программирования на PHP 422 
1. Что такое для пользователя "гостевая книга"? Конечно же, это прежде всего 
страница. А для разработчика сценария? Разумеется, программный код. Получа- 
ется, что взгляды пользователя несколько отличаются от воззрений разработчика. 
Как разрешить сформулированную неувязку? Для этого нужно посмотреть на на- 
шу систему "генератор данных — шаблон" со стороны. Что мы видим? Генератор 
данных загружает данные с диска, а затем обращается к шаблону, чтобы тот их 
вывел. Но пользователь хочет иметь перед глазами прежде всего шаблон, а не ра- 
боту генератора! Мы же заставляем его запускать программу. Возможно, следую- 
щее положение и покажется спорным, но на практике оно полностью оправдывает 
себя. А именно, предлагается поменять направление обмена данными между шаб- 
лоном и генератором данных. Пусть шаблон запрашивает данные у генератора, а 
тот их ему предоставляет. Согласитесь, это укладывается даже в замечательно 
зарекомендовавшую себя модель обмена "клиент- 
сервер": шаблон — это клиент, а генератор данных — сервер. 
2. Хотя шаблон двухуровневой схемы и является подчиненным элементом, он все же 
вынужден ссылаться на имя генератора данных через атрибут action тэга 
. Конечно, это вносит лишь дополнительную неразбериху и является еще одним стимулом к замене понятий "главный" и "подчиненный". 3. Генератор данных состоит из излишне большого числа логических блоков, свя- занных лишь односторонне. В самом деле, если мы будем писать систему админи- стрирования для нашей гостевой книги, нам опять понадобятся функции загрузки и сохранения данных (то есть, функции LoadBook() и SaveBook()). Поэтому ло- гично будет выделить их в отдельный файл, который я здесь буду называть ядром сценария. Ядро — это третий компонент в трехуровневой схеме построения про- граммы, о которой мы сейчас будем говорить. Разумеется, в сложных системах ядро может состоять из десятков (и даже сотен) файлов. Вообще говоря, оно также содержит и сведения о конфигурации (константу GBook), так что часто бывает удобно выделить эти данные в отдельный файл. 4. Шаблон страницы вмещает в себя весь ее HTML-код. В то же время, в современ- ном мире подавляющее большинство сайтов организовано так, что их страницы построены по одной и той же "модели" (например, карта раздела слева, текст справа, баннер вверху, дополнительная информация cнизу и т. д.). Согласитесь, что копировать один и тот же шаблон в сотни мест просто неприемлемо для по- следующего редизайна (который, скорее всего, последует практически сразу, по- тому что при первой реализации довольно сложно бывает сразу учесть все поже- лания заказчика). Конечно, мы можем вставить в нужные места шаблона вызовы инструкции include, загружающей соответствующие блоки страниц. Однако при детальном рассмотрении оказывается, что это всего лишь некоторая "отсрочка" неизбежной проблемы редизайна. В самом деле, мы сможем легко менять внеш- ний вид отдельных блоков, но у нас не получится переставлять их в другом по- рядке (например, карта — справа, текст — слева) без утомительного изменения HTML-кода всех страниц. Глава 30. Код и шаблон страницы 423 r Пожалуй, пока достаточно. Сейчас мы попытаемся решить все эти проблемы, кроме последней (традиционно являющейся для Web-студий настоящим ящиком Пандоры), которой мы тоже вскоре займемся, что выльется, как вы увидите, в до- вольно внушительный объем кода. Трехуровневая схема Итак, в отличие от двухуровневой, трехуровневая схема построения сце
 
<<-[Весь Текст]
Страница: из 287
 <<-