Бондарев (1208177), страница 5
Текст из файла (страница 5)
Рисунок 12
Рисунок 13
Рисунок 14
Необходимо не только вывести список статей, но и дать будущим пользователям сайта просматривать их содержимое. Маршрут www.symfony-blog.ru/article/{id} будет направлять пользователя на статью с номером {id}. В showAction методе контроллера, обратимся к репозиторию и сделаем выборку данных по конкретному номеру статьи. Теперь содержимое статьи доступно для просмотра.
Последним этапом в разработке серверного функционала будет создание формы комментариев. Такая форма должна содержать поля для ввода содержимого комментария, имени пользователя и его почты (защита от спама). Форма будет проверять наличие всех заполненных полей и связывать комментарий со статьей в базе данных. Symfony фреймворк предоставляет удобную работу с формами. В файле CommentType создается метод buildForm (постройка формы), в котором перечисляются все необходимые нам поля из сущности комментариев («Comments»). На рисунке 15 изображен конструктор формы комментариев. В новой функции контроллера createAction создадим объект класса «Comments», в который мы будем записывать полученные от пользователя данные. Для поставленной цели, в первую очередь необходимо получить номер комментируемой статьи (делается это DQL-запросом из файла репозитория). Как только функция контроллера выполнится, созданная ранее форма будет сгенерирована на веб-странице под содержимым статьи (положение формы регулируется в шаблоне веб-страницы). Форма создана, однако она не выполняет свою основную функцию – отправку комментария. Создадим дополнительный обработчик события формы в createAction методе. Теперь, когда пользователь нажмет на кнопку формы – комментарий будет сохранен в базу данных. На рисунке 16 представлена функция контроллера, отвечающая за отправку комментариев. На данном этапе разработка серверного функционала была завершена. Форма комментариев и результат отправки продемонстрирован на рисунке 17.
Рисунок 15
Рисунок 16
Рисунок 17
ЗАКЛЮЧЕНИЕ
В ходе выполнения выпускной квалификационной работы был спроектирован серверный функционал сайта. Реализованный функционал был разработан с использованием одного из популярных фреймворков – Symfony. Это значительно ускорило сроки разработки и позволило расширить свои знания в области данного фреймворка. Для извлечения информации из базы данных была использована программная прослойка между базой данных и приложением – ORM Doctrine. С ее помощью осуществлялись запросы, а полученными данными можно было манипулировать на уровне объектно-ориентированного программирования.
Поставленная цель была достигнута – функционал разработан и может служить основой для дальнейшего расширения проекта. Использованный подход разработки является наиболее современным и востребованным среди большинства веб-студий.
Фреймворк Symfony все больше завоевывает доверие веб-разработчиков своей простотой и надежностью. Фреймворк имеет подробную официальную документацию, поэтому его изучение не вызывает затруднений у новичков. Также Symfony подходит как для крупных, так и для мелких проектов, что делает его универсальным выбором веб-программистов.
Несмотря на то, что инструмент ORM появился давно (1990-е годы), многие разработчики относятся к нему скептически и продолжают использовать SQL-запросы. Применив в своем проекте инструмент ORM Doctrine, который является неотъемлемой частью фреймворка Symfony, мы убедились, что работать с базами данных стало удобнее и приятнее. В будущем данная технология может претендовать на то, чтобы стать стандартом веб-программирования.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1 Мэтью М. Веб-разработка. Исчерпывающее руководство. – СПб.: Питер, 2017. 640 с.
2 Маклафлин Б. PHP и MySQL. Исчерпывающее руководство. – СПб.: Питер, 2013. 512 с.
3 Копейкин М.В., Спиридонов В.В., Шумова Е.O. Базы данных. Основы SQL реляционных баз данных: Учебное пособие - СПб.: СЗТУ, 2005. 160 с.
4 Грей П. Логика, алгебра и базы данных. – М.: Машиностроение, 1989. 368 с.
5 Пайсон М. ООП с примерами (часть 1) [Электронный ресурс]. – Режим доступа: https://habrahabr.ru/post/87119/. – (Дата обращения 07.06.2017).
6 Антощенко В. Создание блога на Symfony 2.8 [Электронный ресурс]. – Режим доступа: https://habrahabr.ru/post/301760/. – (Дата обращения 10.06.2017).
7 Куликов В. Пользовательские репозитории в ORM Doctrine 2 [Электронный ресурс]. – Режим доступа: https://habrahabr.ru/post/130275/. – (Дата обращения 10.06.2017).
8 Локхарт Д. Современный PHP. Новые возможности и передовой опыт / пер. с англ. Рагимов Р.Н – М.: ДМК Пресс, 2016. 304 с.
9 Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования – СПб.: Питер, 2015. 268с.