Page 40 - 4252
P. 40
Контролер сторінок (Page Controller)
Опис
В основі контролера сторінок лежить ідея створення компонентів, які
будуть виконувати роль контролерів для кожної сторінки Веб-сайту. На
практиці кількість контролерів не завжди в точності відповідає кількості
сторінок, оскільки інколи при натисканні на посилання відкриваються сто-
рінки з різним динамічним вмістом. Якщо говорити більш точно, контро-
лер необхідний для кожної дії, під яким мається на увазі клацання на кноп-
ці або гіперпосиланні.
Контролер сторінок може бути реалізований у вигляді сценарію (сце-
нарію CGI) або сторінки сервера (ASP, PHP, JSP і т.д.). Використання сто-
рінки сервера зазвичай передбачає поєднання в одному файлі контролера
сторінок та подання за шаблоном. Це добре для подання за шаблоном, але
не дуже підходить для контролера сторінок, оскільки значно ускладнює
правильне структурування цього компоненту. Дана проблема не настільки
важлива, якщо сторінка застосовується тільки для простого відображення
інформації. Тим не менш, якщо використання сторінки припускає наяв-
ність логіки, пов'язаної з отриманням даних користувача або вибором по-
дання для відображення результатів, сторінка сервера може заповнитися
кодом впровадженого сценарію.
Щоб уникнути подібних проблем, можна скористатися допоміжним
об'єктом (helper object). При отриманні запиту сторінка сервера викликає
допоміжний об'єкт для обробки всієї наявної логіки. У залежності від ситу-
ації, допоміжний об'єкт може повернути управління первісної сторінки
сервера або ж звернутися до іншої сторінки сервера, щоб вона виступила
як представлення. У цьому випадку обробником запитів є сторінка сервера,
проте велика частина логіки контролера укладена у допоміжному об'єкті.
Можливою альтернативою описаного підходу є реалізація обробника і
контролера у вигляді сценарію. У цьому випадку під час вступу запиту веб-
сервер передає управління сценарієм; сценарій виконує всі дії, покладені
на контролер, після чого відображає отримані результати з допомогою по-
трібного подання.
Нижче перераховані основні обов'язки контролера сторінок.
• Проаналізувати адресу URL і витягти дані, введені користувачем у
відповідні форми, щоб зібрати всі відомості, необхідні для виконання дії.
39