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

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

Библиотека :: Компьютеры и Программирование :: Котеров Д. В. - Самоучитель PHP 4
<<-[Весь Текст]
Страница: из 287
 <<-
 
2 гораздо сложнее, чем рис. 30.1. Его 
"загруженность" 
объясняется тем, что трехуровневая схема более, чем это может показаться с 
первого 
взгляда, сложна и универсальна по сравнению с двухуровневой. Обратите внимание 
на то, что практически все связи стали двусторонними, а циклические — исчезли. 
Это 
позволяет работать блоком более независимо, чем для случая двухуровневой модели.
 
А значит, работу над сценарием можно распределить по нескольким исполнителям 
более эффективно, — к чему мы и стремились. 
Единственный блок программы, который не связан с другими двусторонними 
связями, — файл конфигурации системы. Это неудивительно, ведь конфигу- 
рация содержит лишь набор определений констант и переменных, которыми 
пользуются все остальные блоки схемы. Впрочем, стрелка, ведущая из блока 
конфигурации в шаблон страницы, хотя и может существовать без особых по- 
следствий, все-таки иногда выглядит несколько нелогично. Рекомендуется так 
строить сценарии, чтобы шаблону не требовалась информация о конфигура- 
ции. Он должен обращаться только к данным, сгенерированным интерфейсом. 

Часть V. Приемы программирования на PHP 426 
Генератор данных 
Шаблон 
страницы 
Пользователь 
Интерфейсная 
часть 
программы 
Ядро 
Конфигу- 
рация 
Рис. 30.2. Трехуровневая схема 
Интерфейс 
Как можно заметить из листинга 30.4, интерфейс сценария гостевой книги стал 
гораздо 
проще, чем это было с генератором данных из листинга 30.2. Файл, в котором 
содержится 
его код, называется точно так же, как и файл генератора. Это и не удивительно: 
"снаружи" 
интерфейс выглядит как полноценный генератор данных, а о существовании ядра 
шаблон 
даже и не "подозревает". 
Листинг 30.4. Интерфейс: gbook.php 
$New)+$Book; 
// Записать книгу на диск. 
SaveBook(GBook,$Book); 
} 
// Загрузка шаблона не нужна — теперь, наоборот, шаблон 
// вызывает интерфейс. 

Глава 30. Код и шаблон страницы 427 
?> 
Как видим, интерфейс занимается только той работой, для которой он и предназна- 

чен: выступает "посредником" между ядром и шаблоном. Самым первым загружается 
ядро — файл kernel.php (я люблю так его называть). Дальше осуществляется ис- 
ключительно обработка и "расшифровка" входных данных и формирование выход- 
ных. 
Ядро 
Ядро — это самая ответственная, но, на мой взгляд, в то же время и самая 
скучная 
часть работы программиста. Действительно, оно напрямую не взаимодействует с 
шаблоном страницы, а значит, не имеет права "общаться" с пользователем. 
Ядро в идеале должно содержать лишь набор функций, которые позволяют исчерпы- 
вающим образом работать с объектом программы. В этом смысле идеально его объ- 
ектно-ориентированное построение. Об объектно-ориентированном программирова- 
нии на PHP будет вкратце рассказано в главе 31, а пока не будем усложнять и без 
того 
"скользкую" задачу и посмотрим, что представляет собой ядро нашей гостевой 
книги 
(листинг 30.5). 
Листинг 30.5. Ядро: kernel.php 
 

Часть V. Приемы программирования на PHP 428 
Действительно, здесь нет ничего, кроме определений функций и… еще одной инст- 
рукции include (вздохните с облегчением — на этот раз последней). Она добавляет 

конфигурационные данные нашей книги — всего лишь одну-единственную константу 
GBook, оп
 
<<-[Весь Текст]
Страница: из 287
 <<-