Разработка системы управления сайтом

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



екта заполняем все интересующие нас поля: название проекта, папка, где располагаются исходные коды и версия интерпретатора PHP, которую мы используем.

Рисунок 2.6 - Создание нового PHP проекта в Zend Studio 8.0

Studio обладает внушительным инструментарием для создания и сопровождения проектов написанных на PHP

.5 Реализация системы управления сайтом

Разработанное приложение имеет клиент-серверную архитектуру, где сервером выступает приложение HTTP сервер, а клиентом является Web-браузер компьютера конечного пользователя. При обращении сервер генерирует HTML код в зависимости от переданных параметров, который будет возвращен клиенту. Система управления сайтом написана без использования Фреймворков. При разработке системы использовались SQL-запросы, выполнение которых было возможно как в СУБД MySQL, так и MS SQL, но рабочей версией была выбрана СУБД MySQL 5.1.40 с поддержкой встроенных процедур.

Рисунок 2.7 - Настройка проекта PHP

.5.1 Реализация классов системы управления сайтом

В дипломном проекте было реализовано 22 класса, отвечающие за различные аспекты функционирования систему управления сайтом. Из 22 классов, три являются родительскими для остальных и они же задают поведение дочерних классов.

Все класс можно разделить на три основные группы:

.Классы наследники класса LN_DataBase, являются классами предоставляющими интерфейс работы с базой данных.

.Классы наследники класса LN_DataBase_Interface, являются классами предоставляющими интерфейс работы с структурными частями системы управления сайтом.

.Классы наследники класса LN_Master_Element, являются либо обслуживающими классами классов мастеров, либо непосредственно классами мастерами, которые используются для генерации HTML кода.

Система управления сайтом построена на принципе использования обработчики и событий. Обработчики формируют данных, которые заменяют непосредственно маркеры. Обработчик срабатывает в том случае, если привязанный к нему маркер на момент отображения страницы не объявлен, если же он объявлен, то обработчик не вызывается.

События привязываются к адресной строке, и могу возникать одновременно со штатным выполнение программы, например отображением документа. В отличии от обработчиков события возвращают массив меток, которые сливаются с глобальным массивом меток страницы.

Использование событий позволяет построить динамичную панель управления, которую можно изменять со временем и дополнять новыми модулями.

Одним из основных требований к системе было возможность ее дополнения сторонними модулями для расширения функционала, в таблице А.1 приведены стандартные класс ядра системы, которые возможно использовать для создания сторонних модулей. Стоит отметить, что в таблице перечислены лишь основные, открытые методы класса, представляющие интерфейс, служебные методы класса в данном случае не описываются. На рисунке 2.8 показана полная диаграмма классов ядра системы.

Рисунок 2.8 - Диаграмма классов ядра системы

2.5.2 Создание событии обработки адресной строки

События являются довольно гибким инструментом системы. Они представляют собой функции, пример которой показан ниже:LN_Event_admin_document(LN_DataBase $dbc, $arr_var)

{

// Выполняем запрос query к БД

$dbc->query(query, session);

$i_count = count($arr_var);

// Заполняем массив маркеров для возврата($i = 0; $i < $i_count; ++$i)

{

$output[$arr_var[$i]] = $i;

}$output;

}

Данный обработчик будет срабатывать каждый раз, как в адресной строке будет введено /admin/document, причем при добавлении новых параметров в конец адресной строки, они будут передаваться на обработку в качестве элементов массива $arr_var.

Таким образом, обращаясь по адресу /admin/document/edit/147 вы вызываете обработчик LN_Event_admin_document. В этом случае, обработчик вернет массив, состоящий из двух маркеров: маркер edit со значением 0 и маркер 147 со значением 1.

С помощью событий можно создавать удобные интерфейсы пользователя, необходимость в которых возникает при создании дополнительных модулей.

.5.3 Создание обработчиков маркеров

В отличии от событий обработчики привязываются к определенным маркерам, точнее типам маркеров и вызываются лишь в том случае, если на конечной стадии этапа формирования страницы маркеры для данной функции не определены, в случае, если обработчика для данного маркера не существует, то маркер просто удаляется из кода страницы при выводе.

Обработчика имеют следующий прототип:_Handler_имя_обработчика(LN_DataBase $dbc, $arr_var)

{

}

Под именем обработчика понимается имя функции маркера, т.е. для маркера шаблона данных [%main_menu%] обработчиком будет LN_Handler_main_menu. Первый параметр передаваемый в функцию, как и в случае с событием будут ссылкой на объект работы с базой данных, вторым параметром будет массив свойств переданных маркеру в скобках, сдесь вызов аналогичен классическому вызову функции, например: [%main_menu(764,test,300)%] передаст массив из трех элементов: 764, test и 300, а значение, которое вернет обработчик, заменит этот маркер в шаблоне данных.

.6 Реализация пользовательского интерфейса системы управления сайтом

.6.1 Проектирования меню системы управления

Главными качествами, которыми должно обладать меню панели управления, является удобство и заметность. Для того, что бы наше меню было заметно было принято решение расположить ее в верхней части сайта и выделить цветом, что бы оно явно отделялось от остальной рабочей области.

В подбору компоновки элементов меню стоит отнестись