Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Аникин.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
763.91 Кб
Скачать

2.2 Технология создания программного продукта

Система тестирования реализована на веб-фреймворке Zend Framework.

Zend Framework – это каркас веб-приложения разработанный компанией Zend.

Framework – это простая концептуальная структура, используемая для решения сложной проблемной задачи. В контексте программирования framework - это каркас программной системы, который может включать вспомогательные программы, библиотеки кода, язык сценариев и другое ПО, облегчающее разработку и объединение разных компонентов большого программного проекта.

В основе всего приложения лежит Zend_Application который представляет собой средство для начальной загрузки, предоставляющее используемые ресурсы, общие и связанные с модулями загрузочные классы, проверку зависимостей [14].

Zend_Application состоит из трех областей [12]:

  • Zend_Application: загружает окружение PHP, включая include_paths и автозагрузку (autoloading), инстанцирует запрошенный загрузочный класс.

  • Zend_Application_Bootstrap: предоставляет интерфейсы для загрузочных классов. Zend_Application_Bootstrap_Bootstrap предоставляет общий функционал, удовлетворяющий большинство нужд по начальной загрузке, включающие в себя алгоритмы проверки зависимостей и возможность загрузки ресурсов по требованию.

  • Zend_Application_Resource предоставляет интерфейс для стандартных ресурсов загрузки, которые могут быть загружены по требованию через экземпляр загрузочного класса, и несколько реализаций ресурсов, используемых по умолчанию.

Для разграничение прав доступа в системе, создание ролей и ресурсов использовался класс Zend_Acl, он представляет собой реализацию списка прав доступа (ACL) и управления привилегиями. Приложение может использовать ACL для контроля доступа одних объектов к другим - защищенным.

Данный класс позволяет создавать ресурсы и роли. Ресурс - объект, доступ к которому контролируется. Роль - объект, который может запрашивать доступ к ресурсу.

Zend_Acl предоставляет древовидную структуру, в которую могут добавляться различные ресурсы. В этой структуре они могут быть организованы от общих (корень дерева) к специфическим (листья дерева). При запросах к определенным ресурсам в иерархии будет выполнен автоматический поиск правил, относящихся к ресурсам-предкам, учитывающий простое наследование правил. Однако, могут потребоваться исключения из этого правил, в Zend_Acl это достигается путем закрепления исключений за каждым зданием, требующим исключений из правила. Ресурс может наследовать только от одного родительского ресурса, однако сам родительский ресурс может, в свою очередь, наследовать от другого родительского ресурса.

Cтатический контент и основной интерфейс системы строится с помощью компонента Zend_Form, он создание форм, интерфейсов и управление ими в веб-приложениях.

Zend_Form выполняет следующие задачи:

  • фильтрация и проверка корректности данных;

  • упорядочение элементов;

  • визуализацию элементов;

  • группирование элементов и форм;

  • конфигурирование элементов и форм.

Для работы с базой данных использовался класс Zend_Db.

Zend_Db предоставляет интерфейс к базам данных в Zend Framework. Zend_Db_Adapter является базовым классом, который должен использоваться для подключения приложения к СУБД. Существуют различные классы адаптеров для наиболее часто используемых СУРБД.

Адаптеры Zend_Db создают мост между общим интерфейсом и расширениями PHP от конкретных поставщиков для того, чтобы можно было единовременно писать приложения на PHP и затем переключаться между различными СУРБД с наименьшими усилиями.

Для реализации маршрутизации в системе тестирования был унаследован класс Zend_Controller_Router.

Маршрутизация - это процесс принятия конечной точки URI (той части URI, которая идет после базового URL) и ее разложения на параметры для определения того, какой контроллер и какое действие этого контроллера должны получить запрос [13].

Zend_Controller_Router_Rewrite спроектирован для того, чтобы обеспечить функциональность, подобную mod_rewrite, с использованием чистого PHP. Он отчасти основан на маршрутизации, используемой в Ruby on Rails и не требует каких-либо предварительных знаний о перезаписи URL веб-сервером.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]