
- •С одержание
- •Введение
- •1 Теоретическая часть
- •Постановка задачи
- •1.2. Анализ предметной области
- •Требования к программному продукту
- •1.4. Средства реализации
- •1.5. Сравнительный анализ имеющихся средств
- •1.6. Критерии выбора
- •1.7. Выбор инструментальных средств
- •2. Практическая часть.
- •2.1. Моделирование предметной области
- •2.2. Технология создания программного продукта
- •2.3. Техническая реализация программного продукта, алгоритмы и коды
- •2.4. Внедрение и апробация программного продукта
- •2.5. Перспективы развития
- •2.6. Охрана труда
- •2.8. Инструкция пользователя
- •3 Организационно-экономическая часть
- •3.1 Расчёт затрат на внедрение ресурса
- •3.1.1 Расчёт себестоимости ресурса
- •3.1.2 Расчёт статьи «Материалы и комплектующие изделия»
- •3.1.3 Расчёт фонда заработной платы
- •3.1.4 Расчёт затрат на содержание и эксплуатацию оборудования
- •3.1.5 Расчёт накладных расходов
- •3.2 Экономическая эффективность разработки
- •Заключение
- •Список использованных источников (литературы)
- •Приложене а Приложение б
- •Приложение в
- •Приложение г
- •Приложение д
2.2. Технология создания программного продукта
Для создания использовался Zend Framework, который имеет набор готовых классов для более быстрой и удобной разработки программных продуктов.
Zend Framework – это каркас веб – приложения разработанный компанией Zend (компания которая осуществляет поддержку и
координацию проекта php).[9]
Zend framework - это PHP framework, созданный и поддерживаемый компанией Zend, сотрудники которой являются непосредственными авторами языка PHP.
Framework - это простая концептуальная структура, используемая для решения сложной проблемной задачи. В контексте программирования framework - это каркас программной системы, который может включать вспомогательные программы, библиотеки кода, язык сценариев и другое ПО, облегчающее разработку и объединение разных компонентов большого программного проекта.
В основе лежит компонент Zend_Application, она облегчает управление начальной загрузкой и способствует повторному использованию путем инкапсуляции загрузки в соответствии с парадигмой ООП.
При разработке использовался класс Zend_Acl, он предоставляет легковесную и гибкую реализацию списка прав доступа (ACL) и управления привилегиями. Приложение может использовать ACL для контроля доступа одних объектов к другим - защищенным.
Данный класс позволяет создавать ресурсы и роли. Ресурс - объект, доступ к которому контролируется. Роль - объект, который может запрашивать доступ к ресурсу.
Говоря проще, роли запрашивают доступ к ресурсам. Благодаря спецификации и использованию списка прав доступа (ACL) приложение может контролировать предоставление ролям доступа к ресурсам.
Создание ресурсов. Zend_Acl предоставляет интерфейс ресурса Zend_Acl_Resource_Interface для облегчения процесса создания ресурса. Этот интерфейс содержит только один метод, getResourceId(). Классу достаточно реализовывать этот интерфейс для того, чтобы Zend_Acl рассматривал объект этого класса как ресурс.
Zend_Acl предоставляет древовидную структуру, в которую могут
добавляться различные ресурсы. В этой структуре они могут быть организованы от общих (корень дерева) к специфическим (листья дерева). При запросах к определенным ресурсам в иерархии будет выполнен автоматический поиск правил, относящихся к ресурсам-предкам, учитывающий простое наследование правил. Однако, могут потребоваться исключения из этого правил, в Zend_Acl это достигается путем закрепления исключений за каждым зданием, требующим исключений из правила. Ресурс может наследовать только от одного родительского ресурса, однако сам родительский ресурс может, в свою очередь, наследовать от другого родительского ресурса и т.д.[9]
Zend_Acl также поддерживает права доступа к ресурсам (например, "создание", "чтение", "обновление", "удаление"), разработчик может присваивать правила, которые будут влиять на все или определенные права доступа к ресурсу.
Создание ролей. Все роли должны реализовывать интерфейс Zend_Acl_Role_Interface. Этот интерфейс содержит единственный метод getRoleId(). Кроме того, Zend_Acl предоставляет Zend_Acl_Role в качестве базового класса, который разработчики могут расширять по желанию. В Zend_Acl роль может наследовать от одной или от нескольких ролей. Это реализовано для поддержки наследования правил между ролями.
Для создания отображаемого интерфейса использовалась компонент Zend_Form, которая упрощает создание форм и управление ими в веб-приложениях. Она выполняет следующие задачи:
фильтрация и проверка корректности данных, введенных через
элемент формы;
упорядочение элементов;
визуализацию элементов и форм, включая экранирование;
группирование элементов и форм;
конфигурирование элементов и форм.
Этот компонент активно использует другие компоненты Zend Framework-а в своей работе, включая Zend_Config, Zend_Validate, Zend_Filter, Zend_Loader_PluginLoader, и, опционально, Zend_View.
Для работы с базой данных использовался класс Zend_db.
Zend_Db и его родственные классы предоставляют простой интерфейс к базам данных SQL в Zend Framework. Zend_Db_Adapter является базовым классом, который должен использоваться для подключения приложения PHP к СУРБД. Существуют различные классы адаптеров для наиболее часто используемых СУРБД.
Адаптеры Zend_Db создают мост между общим интерфейсом и расширениями PHP от конкретных поставщиков для того, чтобы можно было единовременно писать приложения на PHP и затем переключаться между различными СУРБД с наименьшими усилиями.
Интерфейс класса адаптера подобен интерфейсу расширения PHP Data Objects (PDO). Zend_Db предоставляет классы адаптеров к драйверам PDO для следующих популярных СУРБД:
IBM DB2 и Informix Dynamic Server (IDS), с использованием расширения pdo_ibm
MySQL, с использованием расширения pdo_mysql;
Microsoft SQL Server, с использованием расширения pdo_mssql;
Oracle, с использованием расширения pdo_oci;
PostgreSQL, с использованием расширения pdo_pgsql;
SQLite, с использованием расширения pdo_sqlite.
Кроме этого, Zend_Db предоставляет классы адаптеров, использующие расширения PHP для следующих распространенных СУРБД:
MySQL, с использованием расширения mysqli;
Oracle, с использованием расширения oci8;
IBM DB2, с использованием расширения ibm_db2;
Firebird/Interbase, с использованием расширения php_interbase.
Для формирования отчетов в формате MS Word использовался класс Module_Word, который позволяет на основе шаблона создавать структурируемый текстовой документ с расширением docx. Особенностью является поддержка кириллических символов при кодировании текста.