Описание системы
Описание использованных инструментов
Разработка проекта выполнена в IDE Microsoft Visual Studio Code с применением следующих инструментов:
-
PHP – это скриптовый язык программирования общего назначения, широко используемый для создания динамических веб-страниц.
-
Apache HTTP-сервер – открытый веб-сервер. Разработанный Apache Software Foundation, является одним из наиболее распространенных и надежных веб-серверов в мире. Он поддерживает протоколы HTTP и HTTPS, обеспечивает обработку статических и динамических веб-страниц, а также предоставляет различные возможности конфигурации через файлы .htaccess. Apache предоставляет модульную архитектуру, что позволяет расширять его функциональность с помощью модулей, таких как модули аутентификации, шифрования, сжатия данных и многих других.
-
Git — распределённая система управления версиями, позволяющая контролировать и управлять историей изменений в коде. Позволяет автоматически отслеживать изменения в коде, сохранять его версии, создавать ветки для изоляции работы и комбинировать изменения из разных веток. Git имеет распределенную архитектуру, что означает, что каждый разработчик может работать с локальной копией репозитория и вносить изменения в своей копии.
-
FileZilla — программное обеспечение для передачи файлов по протоколу FTP (File Transfer Protocol), а также поддерживает SFTP (SSH File Transfer Protocol) и FTPS (FTP over SSL/TLS). Это приложение предоставляет удобный интерфейс для управления передачей файлов между клиентом и сервером, позволяя пользователям просматривать файлы на удаленном сервере, загружать и скачивать файлы, а также управлять структурой папок.
-
PuTTY – это свободно распространяемый клиент для работы с сетевыми протоколами, такими как SSH, Telnet и Rlogin. Это консольное приложение предоставляет возможность подключения к удаленному серверу через шифрованный протокол передачи данных (SSH).
-
phpMyAdmin – веб-приложение, предназначенное для администрирования системы управления базами данных MySQL через веб-интерфейс. Это мощное средство обеспечивает удобное управление базами данных, позволяя пользователям создавать, удалять, изменять таблицы, выполнять SQL-запросы, управлять пользователями и привилегиями, а также импортировать и экспортировать данные.
Описание использованных библиотек
При разработке программного решения использовались следующие библиотеки:
-
PDO (PHP Data Objects) - это расширение для языка программирования PHP, предоставляющее унифицированный интерфейс доступа к базам данных. Он предоставляет абстракцию базы данных, что позволяет разработчикам писать код, который может быть перенесен между различными системами управления базами данных (СУБД), такими как MySQL, PostgreSQL, SQLite и другими. PDO обеспечивает безопасный доступ к данным и позволяет использовать подготовленные запросы для предотвращения SQL-инъекций. Он широко используется в веб-разработке для взаимодействия с базами данных.
Описание архитектуры и структуры системы
Система содержит следующие компоненты:
-
База данных.
-
Модуль, обеспечивающий работу с базой данных и генерацию страниц.
Оба компонента должны находиться на сервере и обладать взаимной доступностью для корректной работы системы. База данных обязана хранить данные о пользователях, для которых реализована возможность редактировать контент на страницах. Кроме того, необходимо запоминать информацию о наполнении страниц и их структуре.
Система состоит из нескольких частей:
-
модуль для отображения и правильной работы режима управления контентом. Отвечает за авторизацию и проверку сессии, работу с контентом сайта. Файлы модуля находятся в папке edit. Он содержит шаблоны страниц, которые видит редактор контента в ходе своей работы (template), страницу для авторизации, методы для работы с базой данных и тд.
-
код для работы с базой данных, вывода блоков с контентом на страницу. Расположение в папке jakuba.
-
папка для хранения медиа. Её название – media.
-
папка с модулями, которая хранит файлы для работы с блоками на сайте и их правильного отображения для сторонних пользователей – modules. Для каждого типа блока есть два набора файлов: edit (отображение блока в процессе редактирования) и view (отображение блока на сайте).
-
папка с шаблонами страницы – templates. По умолчанию в папке main хранится готовый шаблон для сайта, состоящий из шапки, основной части и подвала, а также css стилей и JavaScript кода.
Кроме того, необходимо предусмотреть вывод ошибки 404 в случае перехода на несуществующую страницу. Был создан конфигурационный файл, в который были занесены данные для доступа к базе данных и директории к основным файлам для функционирования системы.
Схема таблиц базы данных
База данных программного решения включает в себя 6 таблиц:
-
Blocks – хранит контент для блоков на сайте. Состоит из следующих столбцов: id, content (содержимое), type (тип блока);
-
Media – хранит информацию о медиа для добавления на сайт. Состоит из следующих столбцов: id, title, title_alt (описание), type, url (путь к файлу), hyperlink (куда ссылается);
-
MetaBlocks – хранит блоки для встраивания с помощью html-тега. Состоит из id, content, path (путь к файлу с отображением), name, description;
-
Pages – хранит информацию о странице, наборе блоков на ней и их последовательности. Состоит из id, title, url, blocks (список блоков в последовательности вывода на странице)
-
TypesOfBlocks – хранит информацию о типах блоков. Состоит из id, name, description, type, path (путь к файлам для редактирования и вывода).
-
Users – хранит информацию для авторизации: id, name, login, password (хэш)
Описание характеристики системы
Структура веб-страницы определяется на основе шаблона, указанного в файле конфигурации. Каждый блок, который должен быть включен на странице, хранится и организуется в базе данных в порядке их отображения. Происходит последовательное добавления этих блоков на веб-страницу, которое реализуется в коде главного программного файла.
Для каждого блока на сервере должны быть добавлены два файла: первый отвечает за отображения данного блока на страницах, находящихся в открытом доступе для посетителей страницы, а второй – настраивает внешний вид этого блока в административной панели, доступной только авторизованным пользователям с правами администратора.
В зависимости от выбранного шаблона, страница может включать различные компоненты. В шаблоне, установленном по умолчанию, задаются следующие модули:
-
Header – это верхняя часть страницы, содержащая логотип, меню навигации или другую важную информацию. Составлена из метаблоков разных типов. Header остается постоянным на всех страницах сайта и предоставляет пользователю средства навигации по сайту.
-
Основная часть – это главная область страницы, которая содержит основной контент. Здесь размещается большая часть информации, которую пользователь просматривает, такая как тексты, изображения, видео и другие элементы. Основная часть настраивается с использованием различных типов блоков для удобства представления информации.
-
Footer – это нижняя часть страницы, содержащая различную вспомогательную информацию, такую как контактные данные, ссылки на социальные сети, информацию об авторском праве и дополнительные ссылки на другие страницы сайта или дополнительные ресурсы. Сформирована метаблоками.