Диплом: Автоматизация учета и обработки заявок пользователей на ТО и ремонт оргтехники (Help Desk) в ГБОУ Школа № 937

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
67
Ориентированность на разработчика - Symfony имеет очень удобную
консоль и для того, чтобы программист не выполнял рутинную работу, консоль
Symfony делает генерацию определенного кода вместо программиста с помощью
определенных команд.
Symfony 2 – это набор компонентов, таких как:
HttpFoundation – данный компонент Symfony отвечает за обработку
запросов и ответов приложения (Request и Response соответвенно). Также он
содержит в себе классы, которые позволяют программисту заниматься работой с
файлами и сессией;
Routing компонент, который занимается маршрутизацией в
приложении и позволяет конфигурировать, каким именно образом должны
обрабатываться URL;
Form – компонент, который позволяет программисту легко и удобно
генерировать, а также управлять формами: простыми или загрузочными;
Validator – набор классов, который позволяет программисту проверять
данные на корректность. Содержит в себе множество правил для проверок: начиная
простой проверкой на пустоту объекта, заканчивая различными сложными
правилами.
ClassLoader – библиотека, которая позволяет подключать в систему
PHP-классы без использования явного require.
Templating – тулкит для загрузки/рендеринга шаблонов. Также
поддерживается множественное наследование шаблонов (шаблонизатор Twig);
Security – библиотека, которая создана для решения вопросов, которые
касаются различных типов безопасности, при создании приложения;
Translation компонент, которые позволяет реализовать
многоязычность сайта.
Данный фреймворк работает с подходом к программированию, называемый
Model-view-controller (MVC, «модель-представление-контроллер», «модель-вид-
контроллер»).
Основная идея данного подхода заключается в разделении данных, их
представлениях и обработку действий пользователей на три больших группы:
68
Модель (англ. Model). Модель предоставляет знания: данные и методы
работы с этими данными, реагирует на запросы, изменяя своё состояние. Объекты
данной группы не содержат информации, как эти знания можно визуализировать.
Представление, вид (англ. View). Отвечает за отображение информации
(визуализацию). Часто в качестве представления выступает форма (окно) с
графическими элементами. Главная задача – представить информацию, хранимой в
модели в виде, воспринимаемым пользователем.
Контроллер (англ. Controller). Обеспечивает связь между
пользователем и системой: контролирует ввод данных пользователем и использует
модель и представление для реализации необходимой реакции.
Важно отметить, что как представление, так и контроллер зависят от модели.
Однако модель не зависит ни от представления, ни от контроллера. Тем самым
достигается назначение такого разделения: оно позволяет строить модель
независимо от визуального представления, а также создавать несколько различных
представлений для одной модели.
В таблице 17 приведен список разработанных программных модулей-
контроллеров, в таблице 18 – модели, в таблице 19 – представления.
Таблица 17
Программные модули Controller
Номер
Название
Описание
1
DefaultContoller.php
Класс контроллера, обрабатывающий маршрут
главной страницы информационной системы
2
AbstractController.php
Родительский класс контроллера, содержащий
методы для отображения данных и форм,
обработки отправленных форм
3
SecurityController.php
Класс контроллера, содержащий методы и
функции, необходимые для реализации
функций авторизации, выхода из сайта,
управления профилем пользователя
4
TicketsController.php
Класс контроллера, содержащий методы для
реализации работы с заявками всеми
пользователями ИС
5
SpravController.php
Класс контроллера, содержащий методы для
реализации работы со справочниками
69
Таблица 18
Программные модули Model
Номер
Название
Описание
1
AbstractEntity.php
Родительский класс модели, содержащий
базовые методы и свойства для реализации
классов модели
2
User.php
Класс модели, содержащий атрибуты и методы
для работы с объектом пользователя
3
Department.php
Класс модели, содержащий атрибуты и методы
для работы с объектом отделения
4
Ticket.php
Класс модели, содержащий атрибуты и методы
для работы с объектом заявки
5
Comment.php
Класс модели, содержащий атрибуты и методы
для работы с объектом комментария к заявке
6
Status.php
Класс модели, содержащий атрибуты и методы
для работы с объектом статуса заявки
7
Role.php
Класс модели, содержащий атрибуты и методы
для работы с объектом роли пользователя
8
TypeTicket.php
Класс модели, содержащий атрибуты и методы
для работы с видом неисправности
9
Level.php
Класс модели, содержащий атрибуты и методы
для работы с уровнем техподдержки
Таблица 19
Программные модули View
1
AbstractFormType.php
Класс формы управления данными
2
LoginFormType.php
Класс формы авторизации
3
FilterFormType.php
Класс формы для реализации фильтров
4
UserFormType.php
Класс формы для реализации работы с
данными пользователя
5
TicketFormType.php
Класс формы для реализации работы с
данными заявки
6
SpravFormType.php
Класс формы для реализации работы с записью
справочника
2.3.4. Описание программных модулей
Главная особенность объектно-ориентированного программирования (ООП)
заключается в том, что при использовании этого метода происходит оперирование
объектами. Под объектом в программировании понимается совокупность свойств,
методов их обработки и событий, на которые данные объект может реагировать. Под
свойствами объекта обычно понимают структуры данных, характерные для данного
объекта, или другими словами – набор свойств характеризуют какой-либо объект.
Метод – это способ влияния на свойства объекта, обычно используют два метода –
установка какому-то свойству определенного значения, и считывание значения
70
этого свойства. Объединение данных и свойственных им процедур обработки в
одном объекте, называется инкапсуляцией и является одним из важнейших
принципов ООП.
Еще одним фундаментальным понятием ООП является класс.
Классом называют шаблон, на основе которого создается конкретный
программные объект. То есть в классе описаны все свойства и методы,
определяющие поведение каждого объекта, созданного на основе этого класса.
Также принято каждый объект, созданный на основе класса называть экземпляром
этого класса.
Следующими важнейшими принципами ООП являются наследование и
полиморфизм.
Наследование – такая организация классов, которая подразумевает создание
новых классов на базе существующих и позволяет классу потомку иметь
(наследовать) все свойства класса – родителя.
Полиморфизм – означает, что рожденные объекты обладают информацией о
том, какие методы они должны использовать в зависимости от того, в каком месте
цепочки (дерева классов) они находятся, иными словами это концепция,
реализующая «множество методов в одном интерфейсе».
В структуре программных модулей разработанной ИС Можно четко
проследить механизм наследования. Всего присутствует три родительских класса:
InitializableController.php, AbstractEntity.php, AbstractFormType.php.
Первый является родителем для всех контроллеров ИС, он содержит
объявления таких методов и свойств, которые в дальнейшем используются в каждом
контроллере:
проверка авторизации;
массив форм;
менеджер для доступа к модели;
массив объектов модели;
получение http-запроса;
доступ к сессии пользователя;
доступ к объекту текущего пользователя;
доступ к текущему представлению;
71
массив для отображения текущего раздела в панели навигации.
Второй родительский класс является родителем для всех сущностей. В нем
выделено три основных свойства (атрибута сущности):
дата создания;
идентификатор;
дата изменения;
конструктор создания нового объекта класса;
триггер обновления объекта.
Последний родительский класс – это класс для форм ИС. В нем также
задаются основные константы и конструктор.
Следует заметить, что все описанные выше родительские классы
наследуются от фундаментальных классов фреймворка Symfony, которые содержат
базовые свойства и методы, разделяющие эти классы на три группы MVC.
Каждый контролер обрабатывает запросы, отправляемые по
соответствующему маршруту. Описание того, какой контроллер должен
обрабатывать тот или иной маршрут оформляется в виде отдельного файла:
routing.yml.
Пример записи (главная страница ИС):
index:
path: /
defaults: { _controller: "AppBundle:DefaultController:Index" }
Такая запись означает следующее:
первая строка – название маршрута (index);
вторая строка – путь, или URL-адрес маршрута (/);
третья строка – имя класса контроллера, который должен обрабатывать
маршрут, а также метод этого контроллера, ответственный именно за этот маршрут;
Обработка маршрута выполняется в контроллере DefaultController.php. При
переходе по маршруту (отправке запроса на url /) начинает свою работу метод
IndexAction. Данный метод проверяет наличие у пользователя открытой сессии
авторизации, и если такой нет, то перенаправляет пользователя на форму
авторизации (маршрут /login, Контроллер SecurityController.php).
72
Для обработки шаблонов и формирования на их основе html-страниц,
отображаемых пользователю, используется распространенный шаблонизатор twig.
Twigкомпилирующий обработчик шаблонов с открытым исходным кодом,
написанный на языке программирования PHP. Синтаксис, поддерживаемый
шаблонизатором позволяет использовать в шаблонах ветвления, циклы, а удобная
структура кода позволяет значительно сократить итоговый объем программного
кода. Также стоит отметить, что шаблонизатор генерирует на основе своих
шаблонов чистый php-код, который обрабатывается значительно быстрее.
При переадресации на маршрут открытия формы авторизации (/login),
срабатывает метод loginAction контроллера SecurityController.php. Он создает
экземпляр формы LoginFormType.php и обрабатывает её отправку.
После успешного прохождения авторизации, пользователю отображается
страница со списком заявок пользователя. Данную страницу формирует метод
indexAction контроллера DefaultController.php на основании шаблона
General:index.html.twig.
Для реализации интерактивных элементов пользовательского интерфейса
используются ajax-запросы.
AJAX это аббревиатура, которая означает Asynchronous Javascript and
XML. При использовании AJAX нет необходимости обновлять каждый раз всю
страницу, так как обновляется только ее конкретная часть.
Обобщим достоинства AJAX:
возможность создания удобного Web-интерфейса;
активное взаимодействие с пользователем;
частичная перезагрузка страницы, вместо полной;
удобство использования.
Для более удобного написания программного кода ajax-запросов была
подключена библиотека jQuery.
jQuery – это JavaScript-библиотека, фокусирующаяся на взаимодействии
JavaScript, HTML и CSS.
С помощью jQuery можно выполнять следующие операции:
обращаться к любому элементу DOM (объектной модели html-
документа) и не только обращаться, но и манипулировать ими;
73
работать с событиями;
легко осуществлять различные визуальные эффекты;
работать с AJAX.
Перечисленные выше функции можно реализовать и с помощью обычного
Javascript-кода, однако использование библиотеки значительно упрощает написание
программного кода, а также упрощает его структуру и делает более понятным для
понимания.
Исходный код программных модулей приведен в приложении 2.
2.4. Контрольный пример реализации проекта и его описание
При открытии страницы сайта открывается форма авторизации (Рисунок 19).
Рисунок 19 – Форма авторизации
После прохождения авторизации открывается раздел работы с заявками.
Если пользователь принадлежит к группе сотрудников, то в данном разделе
отображаются заявки, поданные сотрудником. Если заявок еще не было создано, то
отображается пустая таблица с кнопкой создания новой заявки (Рисунок 20).
Рисунок 20 – Раздел работы с заявками
74
При нажатии на кнопку создания новой заявки отображается
соответствующая форма (Рисунок 21).
Рисунок 21 – Форма создания заявки
Поле заполнения формы и отправки данных созданная заявка отображается
в списке всех поданных заявок. Следует отметить, что в зависимости от выбранного
типа неисправности заявке присваивается уровень техподдержки. Оповещение о
созданной заявке получат только те техники, которые относится к этому уровню.
При клике на номер данной заявки в списке открывается страница работы с заявкой,
в верхней части страницы отображаются данные по заявке, а ниже – комментарии к
данной заявке в виде чата. Под окном чата отображаются кнопки управления заявкой
(Рисунок 22).
75
Рисунок 22 – Страница работы с заявкой
В зависимости от роли пользователя, ему доступны разные кнопки
управления заявок. Аналогично меняется и список доступных заявок, отображаемых
на странице, изображенной на рисунке 20.
Для того, чтобы создать пользователя-техника необходимо авторизоваться в
системе под учетной записью с правами администратора. После авторизации
необходимо перейти в раздел Пользователи (доступен только Администратору).
Откроется страница со списком всех пользователей системы (Рисунок 23).
76
Рисунок 23 – Страница со списком пользователей системы
Для добавления нового пользователя необходимо нажать на
соответствующую кнопку, для редактирования данных какого-либо пользователя
необходимо щелкнуть на его имя в списке. Откроется форма работы с данными
пользователя (Рисунок 24).
Рисунок 24 – Форма работы с данными пользователя

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)