Диплом (1207222), страница 7
Текст из файла (страница 7)
Шаблонпроектирования MVC предполагает разделение данных приложения, пользовательского интерфейса и управляющей логики на три отдельных компонента:40Модель, Представление и Контроллер – таким образом, что модификация каждого компонента может осуществляться независимо, как показано на рисунке 18.Преимущества MVC:– отделяет бизнес-логику от пользовательского интерфейса и работы сбазой данных;– позволяет располагать разные части в разных местах, что благоприятно сказывается на поддержке и обслуживании.Обработка дынных и логика приложенийModelПредставление данных пользователю влюбом поддерживаемом форматеViewОбработка запросов пользователя и вызовсоответствующих ресурсовControllerРисунок 18 – Структура MVCКонтроллер (Controller) управляет запросами пользователя (получаемыев виде запросов HTTP GET или POST, когда пользователь нажимает на элементы интерфейса для выполнения различных действий).
Его основная функция –вызывать и координировать действие необходимых ресурсов и объектов, нужных для выполнения действий, задаваемых пользователем. Обычно контроллервызывает соответствующую модель для задачи и выбирает подходящий вид.Модель (Model) – это данные и правила, которые используются для работы с данными, которые представляют концепцию управления приложением.В любом приложении вся структура моделируется как данные, которые обрабатываются определённым образом. Только данные, которые должны быть обработаны в соответствии с правилами (дата не может указывать в будущее, e-mailдолжен быть в определённом формате, имя не может быть длиннее Х символов,и так далее).41Модель даёт контроллеру представление данных, которые запросилпользователь.
Модель данных будет одинаковой, вне зависимости от того, какнеобходимо представлять их пользователю.Модель содержит наиболее важную часть логики приложения, логики,которая решает задачу. Контроллер содержит в основном организационную логику для самого приложения.Вид (View) обеспечивает различные способы представления данных, которые получены из модели. Он может быть шаблоном, который заполняетсяданными. Может быть несколько различных видов, и контроллер выбирает, какой подходит наилучшим образом для текущей ситуации.Веб приложение обычно состоит из набора контроллеров, моделей и видов. Контроллер может быть устроен как основной, который получает все запросы и вызывает другие контроллеры для выполнения действий в зависимостиот ситуации, как показано на рисунке 19.Генерация нужногопредставленияВходящий HTTP-запросКонтроллерОтправка ответа клиентуПредставлениеЕсли необходимо обращение к моделиПередача данных из моделиМодельРисунок 19 – Схема взаимодействия компонентов MVCВ схеме модель является независимым компонентом – любые измененияконтроллера или представления не затрагивают модель.
Контроллер и представление являются относительно независимыми компонентами, и нередко ихможно изменять независимо друг от друга.Благодаря этому реализуется концепция разделение ответственности, всвязи с чем легче построить работу над отдельными компонентами. Кроме того,42вследствие этого приложение обладает лучшей тестируемостью. И если, допустим, важна визуальная часть или front end, то мы можем тестировать представление независимо от контроллера. Либо мы можем сосредоточиться на back endи тестировать контроллер.Конкретные реализации и определения данного паттерна могут отличаться, но в силу своей гибкости и простоты он стал очень популярным в последнее время, особенно в сфере веб-разработки.Рисунок 20 показывает, как обрабатывается запрос пользователя.Модель2Пользователь173Базаданных4Контроллер65ПредставлениеРисунок 20 – Обработка запроса пользователяКонтроллер получает запрос пользователя (1) (запрос HTTP GET илиPOST), проверяет запрос и параметры, а затем вызывает модель, делая запрос (2).Модель получает данные из базы (или из другого источника, в которомхранится информация) (3), применяет фильтры и необходимую логику, а затемвозвращает данные по запросу (4).Контроллер использует подходящий вид (5) для представления данныхпользователю (6-7).
Если запрос приходит с мобильного телефона, используется вид для мобильного телефона; если пользователь использует определённоеоформление интерфейса, то выбирается соответствующий вид, и так далее.433 Разработка интернет-магазина и мобильного приложения3.1 Верстка страниц интернет-магазинаВёрстка веб-страниц – создание структуры html-кода, размещающегоэлементы веб-страницы (изображения, текст и т. д.) в окне браузера, согласноразработанному макету, таким образом, чтобы элементы дизайна выгляделианалогично макету.При верстке веб-страниц можно выделить два основных метода:– табличная верстка;– блочная верстка.Для создания сайта pirogdv.ru была выбрана блочная верстка.
Блочнаяверстка является лидером в среде веб-разработчиков. В блочной верстке макетдокумента состоит из тегов <div>. Главным ее преимуществом является концепция семантической верстки, т. е. разделение содержимого и оформления.Чтобы оформить дизайн блока, задать его расположение и форму необходимо воспользоваться CSS или каскадной таблицей стилей – формальныйязык описания внешнего вида документа.
С помощью селекторов и атрибутовтега class и id присваиваются свойства блоку и его элементам.Интернет-магазин «Русский каравай» содержит следующие страницы:«Главная страница», «О пекарне», «Магазин – Сладкие пироги», «Магазин –Сытные пироги», «Магазин – Все пироги», «Магазин – Наборы», «Акции», «Одоставке», «Новости», «Контакты».Главная страница – самая первая страница, которая загружается привходе на сайт.Главная страница есть у всех сайтов, от солидных интернет-магазиновдо популярных форумов. Основная функция главной страницы – это привлечение внимания целевой аудитории, а так же выполнение функции визитки.Главная страница сайта pirogdv.ru содержит в себе файл index.php.
Также данный файл служит ссылкой, расположенной на всех страницах в блоке44меню, под названием «Главная страница». Вся навигация сайта представлена влистинге 1.<div id="menu"><center><ul id="nav"<li><a</li><li><a</li><li><a<ul><li><aПИРОГИ</b></a></li><li><aПИРОГИ</b></a></li><li><a<li><a</ul></li><li><a</li><li><a</li><li><a<li><a</li></ul></center></div>align="center">href="index.php" title="Главная страница"><b>Главная</b></a>href="o pecarne.php" title="О пекарне"><b>О пекарне</b></a>href="#"><b>Магазин</b></a>href="shopsit.php" title="Сытные пироги"><b>СЫТНЫЕhref="shopslad.php" title="Сладкие пироги"><b>СЛАДКИЕhref="vse.php" title="Все пироги"><b>ВСЕ ПИРОГИ</b></a></li>href="Akcii.php" title="Наборы"><b>НАБОРЫ</b></a></li>href="Akcii.php" title="Акции"><b>Акции</b></a>href="dostavka.php" title="О доставке"><b>О доставке</b></a>href="new.php" title="Новости"><b>Новости</b></a> </li>href="kontakti.php" title="Контакты"><b>Контакты</b></a>Листинг 1 – НавигацияПомимо меню на каждой странице интернет-магазина расположен блокМаленькой корзины в который вложен файл bas/index.php.
Данный файл не является эквивалентов файла index.php, так как последний находится в корневойпапке.Под термином маленькая корзина, поднимется тот интерфейс представления отложенных для покупки товаров, который, как правило, размещается вшапке сайта, как представлено на рисунке 21.Рисунок 21 – Вид корзины45Маленькая корзина служит своеобразным индикатором для посетителей,по которому пользователь может ориентироваться в количестве отложенныхтоваров и итоговой сумме заказа. Решение представлено в листинге 2.<?header('Content-Type: text/html; charset=utf-8');//Установка корзины.$strpath="bas/index.php";$adrself=getcwd();for($i=0; $i<100; $i++){if(file_exists("public_html"))break;if (!file_exists($strpath)) chdir("..");else break;}include ($strpath);chdir($adrself);?>Листинг 2 – Маленькая корзинаВсе страницы сайта содержат JavaScript–элемент.Слайдер – это специальный элемент веб-дизайна, представляющий собой блок определенной ширины чаще всего в шапке веб-страницы.
Главная егозадача изменять в ручном или автоматическом режиме элементы – картинки,тексты и ссылки.Слайдер разрабатываемого интернет-магазина содержит изображения спродаваемой продукцией, а так же логотип компании, которые изменяются автоматически по истеканию некоторым периода времени. Листинг слайдераприведен в приложении А.Одним из самых эффективных методов повышения продаж товара является метод положительных отзывов клиентов. Разрабатываемый сайт содержитблок Обратная связь, представленный в листинге 4. При нажатии на данныйблок появляется окно с формой, содержащей следующие данные: поле «Имя»,поле «E-mail для связи», поле для «Сообщения».
При заполнении всех указанных полей и отправки формы информация приходит письмом на электроннуюпочту администратора. Блок «Обратная связь» расположен на всех страницахсайта и содержит файл feedback.php, расположенный в корневой папке.46Функции обратной связи:– получение отзывов от клиентов;– общение с покупателями;<body><form method="POST" id="feedback-form"><a href="index.php"><img class="close" alt="На главную страницу" title="На главнуюстраницу" src="foto/fileclose.png"><a></br>Как к Вам обращаться:<input type="text" name="nameFF" required placeholder="имя (фамилия)" xautocompletetype="name">Email для связи:<input type="email" name="contactFF" required placeholder="адрес электронной почты" xautocompletetype="email">Ваше сообщение:<textarea name="messageFF" required rows="7"></textarea><center><input type="submit" value="отправить"> </center><?if (isset ($_POST['messageFF'])) {mail ("skorikova75@mail.ru","заполнена контактная форма с ".$_SERVER['HTTP_REFERER'],"Имя: ".$_POST['nameFF']."\nEmail: ".$_POST['contactFF']."\nСообщение:".$_POST['messageFF']);echo ('<center><p style="color: #403C3C; font-size:16pt;">Ваше сообщение получено,спасибо!</p></center>');}?></form></body>Листинг 4 – Обратная связьПункт «Меню – Магазин» является выпадающим списком, заключающим в себе подпункты:– сладкие пироги – shopslad.php;– сытные пироги – shopsit.php;– все пироги (комбинированные сладкие и сытные) – vse.php;– наборы – Akcii.php.На данных страницах представлен товар, который можно приобрести впекарне «Русский каравай».