Диплом: Автоматизация приема заявок на ремонт и модернизацию ВК в ООО Гео-Свет

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
66
Для написания информационной системы использовался фреймворк языка
php Symfony 2.
Symfony 2 – один из самых популярных PHP-фреймворков в настоящее
время. Он включает в себя весь набор инструментов, используемый для быстрой
разработки веб-приложений, и при этом абсолютно ничего не навязывает
создаваемому приложению. Разработчик может быстро начать работу, используя
дистрибутив Symfony2.
Сильные стороны Symfony 2:
Высокая скорость работы за счет использования шаблонизатора под
именем Twig, который использует оптимизированный PHP-код;
Гибкость в настройке – Symfony позволяет конфигурировать
приложения в трех различных форматах: аннотации, XML, YML. Есть
возможность использовать все конфигурации одновременно;
Расширяемость – поскольку Symfony основан на концепции DI
(слабая связанность), программист может в любое время расширять приложение
за счет подключения новых бандлов, которые минимально влияют на работу
других бандлов, но зато возможна конфигурация их совместной работы;
Стабильность – длительное время поддержки версий;
Ориентированность на разработчика - Symfony имеет очень удобную
консоль и для того, чтобы программист не выполнял рутинную работу, консоль
Symfony делает генерацию определенного кода вместо программиста с помощью
определенных команд.
Данный фреймворк работает с подходом к программированию,
называемый Model-view-controller (MVC, «модель-представление-контроллер»,
«модель-вид-контроллер»).
Основная идея данного подхода заключается в разделении данных, их
представлениях и обработку действий пользователей на три больших группы:
Модель (англ. Model). Модель предоставляет знания: данные и
методы работы с этими данными, реагирует на запросы, изменяя своё состояние.
67
Объекты данной группы не содержат информации, как эти знания можно
визуализировать.
Представление, вид (англ. View). Отвечает за отображение
информации (визуализацию). Часто в качестве представления выступает форма
(окно) с графическими элементами. Главная задача – представить информацию,
хранимой в модели в виде, воспринимаемым пользователем.
Контроллер (англ. Controller). Обеспечивает связь между
пользователем и системой: контролирует ввод данных пользователем и
использует модель и представление для реализации необходимой реакции.
Важно отметить, что как представление, так и контроллер зависят от
модели. Однако модель не зависит ни от представления, ни от контроллера. Тем
самым достигается назначение такого разделения: оно позволяет строить модель
независимо от визуального представления, а также создавать несколько
различных представлений для одной модели.
В таблице 13 приведен список разработанных программных модулей-
контроллеров, в таблице 14 – модели, в таблице 15 – представления.
Таблица 13
Программные модули Controller
Название
Описание
DefaultContoller.php
Класс контроллера, обрабатывающий маршрут главной
страницы информационной системы
AbstractController.php
Родительский класс контроллера, содержащий методы
для отображения данных и форм, обработки
отправленных форм
SecurityController.php
Класс контроллера, содержащий методы и функции,
необходимые для реализации функций авторизации,
выхода из сайта, управления профилем пользователя
TicketsController.php
Класс контроллера, содержащий методы для
реализации работы с заявками всеми пользователями
ИС
SpravController.php
Класс контроллера, содержащий методы для
реализации работы со справочниками
68
Таблица 14
Программные модули Model
Название
Описание
AbstractEntity.php
Родительский класс модели, содержащий базовые
методы и свойства для реализации классов модели
User.php
Класс модели, содержащий атрибуты и методы для
работы с объектом пользователя
Department.php
Класс модели, содержащий атрибуты и методы для
работы с объектом отделения
Ticket.php
Класс модели, содержащий атрибуты и методы для
работы с объектом заявки
Comment.php
Класс модели, содержащий атрибуты и методы для
работы с объектом комментария к заявке
Status.php
Класс модели, содержащий атрибуты и методы для
работы с объектом статуса заявки
Role.php
Класс модели, содержащий атрибуты и методы для
работы с объектом роли пользователя
TypeTicket.php
Класс модели, содержащий атрибуты и методы для
работы с видом неисправности
Таблица 15
Программные модули View
Название
Описание
AbstractFormType.php
Класс формы управления данными
LoginFormType.php
Класс формы авторизации
FilterFormType.php
Класс формы для реализации фильтров
UserFormType.php
Класс формы для реализации работы с данными
пользователя
TicketFormType.php
Класс формы для реализации работы с данными заявки
SpravFormType.php
Класс формы для реализации работы с записью
справочника
2.3.4. Описание программных модулей
Разработка ИС велась с использованием двух инструментов:
программы phpMyAdmin, которая является веб-приложение для
работы с СУБД MySQL;
редактора программного кода PhpStorm.
C помощью PhpMyAdmin была создана база данных и все таблицы в ней, а
с помощью PhpStorm выполнялось создание программных модулей. PhpStorm
является продвинутым редактором кода для языка программирования PHP.
69
Данный редактор имеет функционал анализа написанного кода, проверки
ошибок синтаксиса и базовых операций над переменными (проверка
соответствия типов переменных, предварительного объявления переменных и
т.п.), что значительно ускоряет процесс разработку снижает вероятность ошибок
в программном коде.
Главная особенность объектно-ориентированного программирования
(ООП) заключается в том, что при использовании этого метода происходит
оперирование объектами.
Под объектом в программировании понимается совокупность свойств,
методов их обработки и событий, на которые данный объект может реагировать.
Под свойствами объекта обычно понимают структуры данных, характерных для
данного объекта, или другими словами – набор свойств, которые характеризуют
какой-либо объект. Метод – это способ влияния на свойства объекта, обычно
используют два метода – установка какому-то свойству определенного значения,
и считывание значения этого свойства. Объединение данных и свойственных им
процедур обработки в одном объекте, называется инкапсуляцией и является
одним из важнейших принципов ООП.
Еще одним фундаментальным понятием ООП является класс. Классом
называют шаблон, на основе которого создается конкретный программные
объект. То есть в классе описаны все свойства и методы, определяющие
поведение каждого объекта, созданного на основе этого класса. Также принято
каждый объект, созданный на основе класса называть экземпляром этого класса.
Следующими важнейшими принципами ООП являются наследование и
полиморфизм.
Наследование – такая организация классов, которая подразумевает
создание новых классов на базе существующих и позволяет классу потомку
иметь (наследовать) все свойства класса – родителя.
Полиморфизм – означает, что рожденные объекты обладают информацией
о том, какие методы они должны использовать в зависимости от того, в каком
70
месте цепочки (дерева классов) они находятся, иными словами это концепция,
реализующая «множество методов в одном интерфейсе».
В структуре программных модулей разработанной ИС Можно четко
проследить механизм наследования. Всего присутствует три родительских
класса: AbstractController.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).
Для обработки шаблонов и формирования на их основе html-страниц,
отображаемых пользователю, используется распространенный шаблонизатор
twig. Twig – компилирующий обработчик шаблонов с открытым исходным
кодом, написанный на языке программирования PHP. Синтаксис,
поддерживаемый шаблонизатором позволяет использовать в шаблонах
ветвления, циклы, а удобная структура кода позволяет значительно сократить
72
итоговый объем программного кода. Также стоит отметить, что шаблонизатор
генерирует на основе своих шаблонов чистый 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. Контрольный пример реализации проекта и его описание
При открытии страницы сайта открывается форма авторизации (Рисунок
23).
Рисунок 23 – Форма авторизации
После прохождения авторизации отображается раздел работы с заявками.
Если пользователю назначена роль «Сотрудник», то в данном разделе
отображаются заявки, поданные сотрудником. Если заявок еще не было создано,
то отображается пустая таблица с кнопкой создания новой заявки (Рисунок 24).
74
Рисунок 24 – Раздел работы с заявками
При нажатии на кнопку создания новой заявки отображается
соответствующая форма (Рисунок 25).
Рисунок 25 – Форма создания заявки
Поле заполнения формы и отправки данных созданная заявка
отображается в списке всех поданных заявок. При клике на номер данной заявки
в списке открывается страница работы с заявкой, в верхней части страницы
отображаются данные по заявке, а ниже – комментарии к данной заявке в виде
чата. Под окном чата отображаются кнопки управления заявкой (Рисунок 26).
75
Рисунок 26 – Страница работы с заявкой
В зависимости от роли пользователя, ему доступны разные кнопки
управления заявок (техникам отображается кнопка отправки заявки «На
модернизацию», а Администратору – форма для смены ответственного за
заявку). Аналогично меняется и список доступных заявок, отображаемых на
странице, изображенной на рисунке 24.
Для того, чтобы создать пользователя-сотрудника IT-отдела необходимо
авторизоваться в системе под учетной записью с правами администратора. После
авторизации необходимо перейти в раздел Пользователи (доступен только
Администратору). Откроется страница со списком всех пользователей системы
(Рисунок 27).

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

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