Автор работы: Пользователь скрыл имя, 29 Апреля 2014 в 17:16, дипломная работа
Web-приложение – клиент-серверное приложение, в котором сервером выступает web-сервер, клиентом программа или устройство, способное получить доступ к web-серверу. Логика web-приложения распределена между сервером и клиентом, хранение данных осуществляется преимущественно на сервере, обмен информацией происходит по сети.
Web - сервер — это сервер, принимающий HTTP-запросы от клиентов, обычно веб-браузеров, и выдающий им HTTP-ответы, обычно вместе с HTML-страницей, изображением, файлом, медиа-потоком или другими данными.
CMS (Content management system) – компьютерная система или программа, используемая для обеспечения и организации совместного процесса создания, редактирования и управления текстовыми и мультимедиа документами.
Обозначения и сокращения 6
Определения 7
Введение 9
1. Описание основных используемых технологий и языков программирования 10
1.1. Общие сведения 10
1.2. Язык программирования PHP 10
1.3. Web-сервер Apache 11
1.4. СУБД MySQL 12
1.5. Язык программирования JavaScript 12
1.6. Технология AJAX 13
1.7. Таблица стилей CSS 14
1.8. Общая схема работы web-приложения 14
2. Описание системы «1С – Битрикс: Управление сайтом» 16
2.1. Общие сведения 16
2.2. Преимущества и недостатки системы 16
2.3. Целесообразность использования системы 18
2.4. Сравнение с другими системами 19
3. Описание API системы «1С – Битрикс: Управление сайтом» 21
3.1. Общие сведения 21
3.2. API модуля «Главный модуль» 21
3.3. API модуля «Информационные блоки» 23
4. Формирование требований к сценариям работы web-приложения 26
4.1. Общие сведения 26
4.2. Список требований 26
5. Диаграмма информационных блоков 29
5.1. Общие сведения 29
5.2. ER – диаграмма данных web-приложения 29
5.3. Определение информационных блоков 31
6. Описание программных компонентов 34
6.1. Создание общей структуры страниц web-приложения 34
6.2. Реализация структуры страниц web-приложения, физическая структура 36
6.3. Список программных компонентов 39
6.3.1. Компонент «Список всех игр» 39
6.3.2. Компонент «Список новых и выходящих игр» 40
6.3.3. Компонент «Список лучших игр» 42
6.3.4. Компонент «Список 100 лучших игр» 43
6.3.5. Компонент «Фильтр по играм» 44
6.3.6. Компонент «Поиск по играм» 45
6.3.7. Компонент «Автоподсказки в поиске» 46
6.3.8. Компонент «Список обзоров к игре» 47
6.3.9. Компонент «Детальная страница игры» 48
6.3.10. Компонент «Форма поиска» 48
6.3.11. Компонент «Страница разработчика игры» 49
6.3.12. Компонент «Список лучших игр за год» 50
6.4. Диаграмма связей между страницами web-приложения и компонентами 51
6.5. Особенности реализации сценариев работы web-приложения. 51
6.5.1. Общие сведения 51
6.5.2. Сохранение состояния страниц при использовании AJAX – запросов 52
6.5.3. Обработка событий панели управления. 55
7. Резервное копирование данных web-приложения. Система управления версиями 59
7.1. Общие сведения 59
7.2. Реализация резервного копирования 59
7.3. Система управления версиями 62
7.3.1. Описание системы Subversion 62
7.3.2. Настройка Subversion для работы с web-приложением 64
8. Нагрузочное тестирование 69
8.1. Общие сведения 69
8.2. Техника проведения нагрузочного тестирования 69
8.3. Оценка результатов тестирования 71
Заключение 76
Список использованных источников 77
Приложение A. Принцип работы системы «1С – Битрикс: Управление сайтом» 78
А.1. Общие сведения 78
А.2. Модульная структура системы 78
А.2.1. Главный модуль 79
А.2.2. Модуль «Управление структурой» 79
А.2.3. Модуль «Информационные блоки» 80
А.3. Компоненты 81
А.3.1. Общие сведения 81
А.3.2. Файловая структура компонента 81
А.3.3. Схема обмена данными между файлами компонента 85
А.3.4. Публичный раздел системы 87
А.3.4.1. Порядок загрузки страницы web-приложения 87
А.3.4.2. Подключение модулей системы 87
А.3.4.3. Подключение шаблонов web-приложения 88
А.3.4.4. Подключение компонентов web-приложения 88
Приложение Б. Требования заказчика к работе web-приложения и дизайн-концепция 90
Приложение В. Исходные коды программных компонентов 95
В.1. Компонент games.calendar 95
В.2. Компонент games.raiting 99
В.3. Компонент games.filter 102
В.4. Компонент games.search 113
В.5. Компонент games.detail 117
В.6. Компонент search_autocomplete 121
В.7. Компонент reviews.list 126
lang / ru (или идетификатор другого языка) - внутри данной папки содержатся файлы с расширением .php и именем, соответствующим именам файлов, находящихся на одном уровне с папкой lang. Содержимое файла является сценарием на языке PHP, в котором определяется массив $MESS, ключами которого являются идентификаторы языковых фраз, значениями – сами языковые фразы. Например
<?php $MESS[“EMPTY_LIST”] = “Ничего не найдено”; ?>
После того, как этот массив определен, языковые фразы будут доступны в одноименном файле с помощью функции API системы GetMessage, например:
<?php echo GetMessage(“EMPTY_LIST”); ?>
component.php – основной файл компонента, который содержит в себе сценарий, определяющий функциональность компонента. В данном файле производятся запросы к базе данных на получение данных, обработка этих данных, проводятся вычисления, осуществляется кеширование данных, производится выбор и подключение шаблона компонента. Без данного файла файловая структура с точки зрения системы не является компонентом.
parameters.php – файл компонента, в котором производится настройка параметров компонента. В сценарии, находящемся в данном файле, также возможны запросы к базе данных, вычисления и т.д., аналогично файлу component.php. В конечном итоге, сценарий файла .parameters.php сводится к определению массива $arComponentParameters, который имеет следующую структуру:
$arComponentParameters = array(
“GROUPS” => array(
“идентификатор_группы_N” => array(
“NAME” => “имя_группы”
),
),
“PARAMETERS” => array(
“идентификатор_параметра_N” => array(
“NAME” => “имя_параметра”,
“TYPE” => “тип_параметра”,
“PARENT” => “идентификатор_группы”,
)
));
description.php – файл, в котором содержится сценарий, определяющий второе имя компонента (первым является имя папки компонента), описание компонента и схему расположения компонента в разделе «Компоненты 2.0» визуального редактора административного раздела системы. Работа сценария в конечном итоге сводится к определению специального массивa $arComponentDescription:
$arComponentDescription = array(
“NAME” => “имя_компонента”,
“DESCRIPTION” => “описание_компонента”,
“PATH” => array(
“ID” => “идетификатор_ветки_
“NAME” => “имя_ветки_редактора”
)
);
templates – папка, содержащая в себе шаблоны вывода компонента, т.е. сценарии, обеспечивающие формирование кода web-страниц, который должен быть передан web-клиенту для последующего отображения пользователю.
templates / .default (другой шаблон) – папка конкретного шаблона. Шаблонов компонента может быть несколько.
templates / .default / template.php – файл, содержащий сценарий, определяющий дополнительные параметры компонента для конкретного шаблона. Сценарий файла сводится в конечном итоге к определению массива $arTemplateParameters, во многом схожего с описанным выше массивом $arComponentParameters.
$arTemplateParameters = array(
“идентификатор_параметра_N” => array(
“NAME” => “имя_параметра”,
“TYPE” => “тип_параметра”,
)
);
templates / .default / style.css – файл, в котором расположены стили CSS, которые будут переданы web-клиенту вместе с выводом шаблона для последующего отображения пользователю.
templates / .default / script.js – файл, в котором расположены сценарии JavaScript, которые будут переданы web-клиенту вместе с выводом шаблона.
templates / .default / template.php – файл, содержащий в себе сценарий, реализующий вывод данных в виде HTML – разметки или в другом виде, понятном web-клиенту или другому устройству, обращающемуся к web-приложению.
templates / .default / lang – аналогична папке lang, описанной выше.
templates / .default / images – папка, в которой содержатся дополнительные изображения, используемые в шаблоне.
templates / .default / result_modifirer.php – дополнительный сценарий, который выполняется перед выполнением сценария шаблона компонента
Любой компонент должен быть вызван в сценарии страницы web-приложения. Точная процедура вызова будет описана в разделе 3.4.4., но будем считать, что web-страница передает данные компоненту в момент вызова последнего.
Рисунок А.1 – Схема обмена данными между файлами компонента
На рисунке А.1 представлена схема обмена данными между сценариями компонента при вызове компонента на странице web-приложения.
При вызове компонента в сценарии web-страницы указываются значения параметров компонента, которые затем посредством массива $arParams передаются в сценарий файла component.php.
В сценарии файла component.php посредством метода IncludeComponentTemplate класса CBitrixComponent происходит вызов одного из шаблонов компонента. id шаблона также определяется в сценарии страницы web-приложения и неявно для разработчика передается указанный выше метод. Соответственно, подключается сценарий файла template.php одного из шаблонов, в который передается возможно измененный в сценарии component.php массив $arParams и, также, сформированный в сценарии component.php массив $arResult. Оба этих массива доступны также и в файле result_modifier.php, который подключается перед подключением файла template.php.
Работа компонента заканчивается в момент завершения работы сценария файла component.php, т.е. возможно выполнить действия уже после подключения шаблона. Однако, если массив $arResult будет изменен в сценарии шаблона, в сценарий файла компонента component.php измененные данные переданы не будут.
При загрузке страницы web-приложения системой проделывается ряд процедур, которые позволяют инициализировать web-приложение и обеспечить правильность работы шаблона, компонентов и модулей, подключенных и вызываемых в сценарии web-страницы.
Ниже приведены основные этапы, которая страница проходит при загрузке системой. Часть этапов опущена, т.к. не имеет смысловой загрузки для разработки проектного web-приложения.
Подключение модуля на web-странице фактически означает подключение всех классов и функций API модуля, которые могут быть использованы в сценарии web-страницы и ее компонентов.
Для того, чтобы подключить модуль, необходимо вызвать специальный метод:
CModule::IncludeModule(“имя_
, который производит
Настройка шаблонов web-приложения производится в настройках web-приложения. Для того, чтобы система при загрузке страницы могла определить нужный шаблон и подключить его на страницу, страница должна иметь следующий вид:
<?php require_once($_SERVER[“
-------------------Любой
<?php require_once($_SERVER[“
Для того, чтобы вызвать компонент, необходимо также воспользоваться API модуля «Главный модуль», вызвав специальный метод класса CMain, который представлен на странице объектом $APPLICATION:
$APPLICATION -> InculdeComponent(
“пространство_имен_
“id_шаблона_компонента”,
Array(
”Ключ_параметра_1” => ”значение_параметра_1”,
”Ключ_параметра_N” => ”значение_параметра_N”
) //массив значений параметров компонента
);
Первый параметр данного метода определяет имя подключаемого компонента, перед которым через символ ”:” указывается имя пространства имен компонентов.
Второй параметр определяет идентификатор шаблона, который следует подключить в компоненте.
Третий параметр компонента – это массив значений параметров компонента, ключами которого являются идентификаторы параметров, значениями – значения параметров.
Задание на разработку сайта metagames.ru
Информационная архитектура
Структура
|
|
|
Компонент «список игр» |
|
Компонент «детальная страница игры» |
|
Компонент «список игр» Компонент «фильтры» |
|
Компонент «результаты поиска» |
Функционал
Компонент «Детальная страница игры»
Для каждой игры должна выводится следующая информация:
Базовая информация:
Также, в виде дополнительной вкладке над зоной со скриншотами у пользователя есть возможность переключиться на:
Дополнительная информация:
Кроме того, для каждой игры выводится две оценки:
Внизу располагается зона «обзоры», в которой идёт список рецензий. Для каждой рецензии выводится:
Компонент «рейтинги»
Компонент выводится на главной странице и представляет из себя рейтинг 10 игр с наивысшей метаоценкой за последние 12 месяцев. 1ая игра отображается крупно. Остальные – списком. Снизу располагается ссылка «посмотреть весь рейтинг», ведущая на страницу «лучшие игры».
Над рейтингом располагается вкладка «Самые ожидамые», выводящая в таком же формате рейтинг самых ожидаемых игр.
Компонент «форма поиска»
Компонент представляет из себя стандартное текстовое поле для ввода и кнопку или иконку «искать». Как только пользователь начинает набирать текст, ему автоматически должны отображаться подсказки (в виде игр, названия которых начинаются с этих же букв).
Компонент «результаты поиска»
В результаты поиска попадают игры, у которых свойства «название» или «название по-английски» содержат в себе введенный пользователем запрос (е и ё должны считаться одинаковыми буквами). Компонент выводит список игр, удовлетворяющих результатам поиска. Для каждой игры выводится: