Разработка системы управления сайтом
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
екта заполняем все интересующие нас поля: название проекта, папка, где располагаются исходные коды и версия интерпретатора 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 Проектирования меню системы управления
Главными качествами, которыми должно обладать меню панели управления, является удобство и заметность. Для того, что бы наше меню было заметно было принято решение расположить ее в верхней части сайта и выделить цветом, что бы оно явно отделялось от остальной рабочей области.
В подбору компоновки элементов меню стоит отнестись