Дипломная работа: Автоматизация учета и обработки заявок пользователей на ТО и ремонт оргтехники (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).
Источник: https://baza.diplomsite.ru/previewfile/2375