Бондарев (1208177)
Текст из файла
СОДЕРЖАНИЕ
ВВЕДЕНИЕ 6
1 Веб-разработка. Основные технологии 9
1.1 HTML 9
1.2 PHP 11
1.3 Основы ООП 14
1.4 Фреймворки в веб-разработке 18
1.5 PHP фреймворк Symfony 20
1.6 PHP и базы данных 21
1.7 Система управления базами данных 22
1.8 Операции реляционной алгебры 24
1.9 Базы данных и ORM Doctrine 28
2 Реализация серверного функционала сайта 33
2.1 Цель и этапы разработки 33
2.2 Проектирование схемы базы данных 33
2.3 Выбор инструментов для решения задачи 34
2.4 Разработка проекта 35
ЗАКЛЮЧЕНИЕ 44
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 45
ВВЕДЕНИЕ
Сфера веб-разработки в настоящее время активно развивается. Современное поколение предпочитает общаться, искать информацию, делать покупки не выходя из дома с помощью Интернета. На сегодняшний день практически каждая крупная компания имеет собственный сайт, предоставляющий определенные услуги посетителям. А те компании, которые еще не имеют – задумываются над этим. Как следствие требуются квалифицированные веб-программисты, которые способны предоставить свои услуги по созданию современных сайтов.
Целью выпускной квалификационной работы является разработка серверного функционала веб-сайта с использованием современных технологий веб-программирования.
Были поставлены следующие задачи:
– Выполнить обзор современных инструментов веб-разработки;
– Разработать прототип веб-сайта и его серверный функционал.
Направление разработки сайта – библиотека научных статей преподавателей и ученых деятелей, на примере которой будет спроектирован и рассмотрен основной функционал.
Для достижения поставленных задач были спроектированы следующие функции сервера:
– Просмотр всех научных статей, находящихся в базе данных;
– Быстрый доступ к последним публикациям;
– Фильтрация статей по категориям;
– Демонстрация содержимого статьи;
– Отправка комментариев.
Для разработки функционала сайта выбран серверный язык программирования PHP. За долгое время развития данного языка, появилось много готовых решений типовых задач, а значит, нет необходимости писать весь проект с нуля. Чтобы структурировать процесс разработки существуют программные комплексы – фреймворки. Одним из таких проектных каркасов является фреймворк Symfony, который поспособствует снижению срока разработки приложения. Также Symfony позволяет подключать к проекту дополнительные программные модули, позволяющие использовать готовые функции и отвлечься от решения рутинных задач. Так как в процессе разработки приходится часто обращаться к базе данных, нужно реализовать данное взаимодействие в наиболее удобном виде. Поэтому для взаимодействия с базой данных выбрана технология объектно-реляционного отображения – ORM. ORM-инструмент обеспечивает работу с данными в терминах классов, а не таблиц данных и наоборот, преобразовывает термины и данные классов в данные, пригодные для хранения в БД. Фреймворк Symfony поставляется с ORM инструментом Doctrine, который осуществляет запись запросов в БД на собственном объектно-ориентированном диалекте SQL, называемым DQL. Doctrine позволяет создавать базу данных и отношения между таблицами прямо из проекта, не прибегая к использованию СУБД.
Новизна выпускной квалификационной работы заключается в объединении двух современных технологий веб-разработки: объектно-ориентированного фреймворка Symfony с инструментом для работы с базами данных – ORM Doctrine. Такое решение обеспечивает:
– Уменьшение сроков разработки проекта;
– Современный объектно-ориентированный подход;
– Масштабирование проекта с помощью подключаемых программных модулей;
– Прозрачное взаимодействие с базами данных, без использования дополнительного программного обеспечения.
Итогом выпускной квалификационной работы является разработанный демонстрационный прототип веб-сайта. Реализованный функционал может служить основой для расширения проекта.
Практическая значимость данной разработки вытекает из ее актуальности и обусловлена широким спросом на услуги веб-разработчиков. Для решения поставленных задач любой разработчик должен уметь подбирать инструментарий, который поспособствует быстрому развитию проекта.
1 Веб-разработка. Основные технологии
1.1 HTML
Просматривая веб-страницу в браузере, её можно увидеть в самом простом варианте – текст. Редко можно увидеть веб-страницу, которая содержит только обычный текст, поэтому веб-страницы обычно стилизуют определённым образом. В современных реалиях веб-дизайнеры имеют доступ к сотням различных шрифтов различных размеров, цветов и даже алфавитов (например, испанский, японский, русский), а браузеры могут точно отображать большинство из них. Веб-страницы также могут содержать изображения, музыку и видеоклипы. Они могут включать ссылки на внешние ресурсы, выпадающие меню, формы поиска, а также другие страницы этого же веб-сайта. Некоторые веб-сайты даже могут поддерживать опции для настройки отображения веб-страницы согласно предпочтениям пользователя или физиологическим ограничениям, таким как плохое зрение или дальтонизм. Часто веб-страницы могут содержать динамический контент (наполнение веб-страницы), который перемещается, в то время как остальная часть веб-страницы остаётся неподвижной.
Некоторые технологии (такие как CSS, JavaScript, AJAX) могут использоваться для определения элементов веб-страницы. Однако, на самом базовом уровне, веб-страница создаётся с использованием HTML - (языка гипертекстовой разметки). Без HTML невозможно создать веб-страницу. HTML – это то, что обрабатывает браузер для представления страницы на компьютере клиента.
Международные стандарты и спецификации HTML поддерживаются консорциумом World Wide Web (W3C) и рабочей группой Web Hypertext Application Technology Working Group (WHATWG). WHATWG рассматривает HTML как стандарт, который постоянно развивается, а W3C работает с разными версиями HTML, наиболее свежая из которых это HTML5, и над следующей версией – HTML 5.2.
Существуют две основные версии синтаксиса, которые имеют определённые отличия: свободный HTML и строгий XML (расширенный язык разметки). HTML описывает контент веб-страницы и его значение, но не описывает стилизацию и форматирование.
Для управления внешним видом элементов HTML-документа – используют язык стилей CSS (англ. Cascading Style Sheets). С помощью CSS можно изменить цвет элемента страницы, начертание шрифта, отступы, высоту или ширину элементов и т.д. Главная цель CSS – разделить описание логической структуры веб-страницы (производится с помощью HTML или других языков разметки) и описание внешнего вида (производится с помощью CSS). Таким образом, обеспечивается гибкость управления внешним видом веб-страницы и минимизация объема кода, который мог неизбежно повторяться в ходе длительной разработки. В современной индустрии веб-разработки считается хорошим тоном использование CSS вместо явного указания стилей в коде HTML.
HTML – это язык разметки. С его помощью браузер знает, как отобразить веб-страницу. HTML отделяет «наполнение» (текст, изображения, видео и т.д.) от «представления» (определения типа наполнения и правила как должно отображаться наполнение такого типа). HTML использует предопределённый набор элементов. Элементы могут либо содержать в себе контент, либо иметь вложенную структуру и содержать другие элементы. Элементы определяются так называемыми «тэгами», которые всегда обособлены угловыми скобками. Большинство тэгов идут парами – один тэг открывает тэг, а другой закрывает. Некоторые элементы могут быть объединены в иерархическую структуру. Элементарная веб-страница выглядит следующим образом:
<html>
<body>
<p> Содержимое элемента</p>
</body>
</html>
Элемент <html> полностью оборачивает весь документ, а элемент <body> – содержимое веб-страницы. Эта иерархическая структура называется DOM (Document Object Model).
Содержимое HTML-файлов представляют собой обычный текст. Они могут быть написаны в текстовых редакторах, которые позволяют сохранять содержимое как обыкновенный текст, например Notepad++ или Sublime, но предпочтительнее использовать специализированные редакторы, которые показывают DOM и подсвечивают синтаксис.
1.2 PHP
Разделяют два типа языков веб-программирования: «клиентский» и «серверный». Клиентские языки (скрипты) выполняются на стороне пользователя. Обычно их обрабатывает браузер, который использует человек для просмотра веб-страницы. Недостатком клиентских языков является то, что они не могут взаимодействовать с сервером, на котором расположен сайт. К тому же, программа, которая написана с использованием клиентского языка, не обеспечивает безопасность данных. Любой пользователь может просмотреть HTML-код веб-страницы и узнать всю конфиденциальную информацию, включая пароли.
Серверные языки выполняются на сервере (удаленном компьютере). Использование серверных языков повышает безопасность, например пользователь уже не сможет увидеть её исходный код, т.к. данные будет представлены в обработанном виде, в качестве HTML-страницы.
PHP (рекурсивный акроним PHP: Hypertext Preprocessor) – серверный язык программирования общего назначения с открытым исходным кодом. Спроектирован специально для ведения веб-разработок. PHP-код помещается непосредственно в HTML разметку. Вместо трудоемкого вывода HTML-кода командами языка (как это происходит, например, в Си), скрипт PHP содержит HTML с включениями кода. Код PHP отделяется начальным и конечным тэгами <?php и ?>, которые позволяют переключаться в «PHP-режим» и выходить из него. Пример программирования на PHP:
<html>
<body>
<?php
echo 'PHP-скрипт';
?>
</body>
</html>
PHP-скрипты выполняются на сервере и генерируют HTML, который отправляется клиенту. Если разместить вышеприведенный скрипт на сервере, то клиент получит только результат его выполнения, но не сможет выяснить, какой именно скрипт его произвел. Сервер можно настроить таким образом, чтобы обычные HTML-файлы обрабатывались процессором PHP, так что клиенты даже не узнают, получают ли они HTML-файл или результат выполнения PHP-скрипта.
1.2.1 Стандарты написания кода
PHP-сообщество является очень обширным и разнообразным, сочетая в себе множество различных компонентов, библиотек и фреймворков. Стандартная практика PHP разработчика – выбрать несколько из них и объединить в одном проекте. Необходимо придерживаться общих стандартов написания PHP-кода. Группа Совместимости Фреймворков (PHP-FIG) предложила и одобрила ряд стилевых рекомендаций, известных как PSR-0, PSR-1 и PSR-2. Данные рекомендации представляют собой набор правил, которых придерживаются такие проекты, как Zend, Drupal, Symfony, phpBB и другие. PHP-код должен соответствовать известным стандартам. Это может быть любое сочетание рекомендаций PSR или один из стандартов кода, сделанных Zend или PEAR.
Для всех символических имен и инфраструктуры кода предпочтительным является английский язык. Комментарии могут быть написаны на любом языке, который будет удобен для текущих и будущих разработчиков, которым предстоит работать с кодом.
1.2.2 Парадигмы программирования
PHP представляет собой динамичный и гибкий язык, который поддерживает несколько техник программирования. Он существенно развился в течение нескольких последних лет: добавлена объектно-ориентированная модель в PHP 5.0 (2004), замыкания (анонимные функции) и пространства имен в PHP 5.3 (2009), а также механизмы обеспечения повторного использования кода в PHP 5.4 (2012).
1.2.3 Объектно-ориентированное программирование
PHP использует большой набор особенностей объектно-ориентированного программирования, включая поддержку классов, наследования, интерфейсов, исключений, конструкторов и т.д.
1.2.4 Функциональное программирование
В PHP есть поддержка функций первого класса, т.е. функция может применяться к переменной. Встроенные и определенные пользователем функции могут быть применены к переменной и вызваны динамически. Функции могут передаваться, как аргумент к другой функции, а также функция может возвращать другую функцию. Рекурсия – это особенность, позволяющая функции вызывать саму себя. Это поддерживается языком, но большая часть кода PHP сосредотачивается на итерации.
Начиная с версии 5.3 (2009) в PHP поддерживаются замыкания (анонимные функции). В PHP 5.4 улучшена поддержка callablеs (всё, что может быть вызвано), так что они могут быть использованы наравне с анонимными функциями, а также добавлена возможность связывать замыкание с областью видимости объекта.
1.2.5 Пространства имен
PHP сообщество состоит из множества разработчиков, создающих очень много проектов. Это означает, что одна библиотека PHP может иметь такое же название класса, как и другая. Если использовать обе библиотеки в одном пространстве имен, то они начнут конфликтовать, что приведет к возникновению проблем. Для того чтобы избежать подобных конфликтов, необходимо использовать пространства имен. Пространства имен можно сравнить с папками операционной системы, которые являются пространствами имен файлов; два файла с одинаковым именем могут находиться в разных директориях. Так и два PHP класса с одинаковым названием могут существовать в разных пространствах имен PHP.
1.3 Основы ООП
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.