- •Аннотация
- •Введение
- •2.1.2.Используемое на предприятии по
- •2.1.3.Полный цикл строительных работ по объекту
- •2.1.4.Аналоги проектируемого программного продукта
- •2.1.5.Итог анализа предпроектной ситуации
- •2.2.Выбор и обоснование средств разработки
- •2.2.1.Выбор языка программирования для сервера
- •2.2.2.Выбор субд sql
- •2.2.3.Выбор Web-сервера
- •2.2.4.Выбор хостинга
- •2.2.5.Выбор интегрированной среды разработки
- •2.2.6.Выбор вспомогательных программных средств
- •2.2.7.Обход недостатков php как динамически типизированного языка
- •2.2.8.Работа с базой данных.
- •3.1.2.2.Таблица nodes
- •3.1.2.3.Таблица nodes_versions
- •3.1.2.4.Таблица chat_messages
- •3.1.2.5.Таблица news
- •3.1.2.6.Таблица made_projects
- •3.1.2.7.Таблица uploaded files
- •3.1.2.8.Таблица uploaded_files_versions
- •3.1.2.9.Таблица attached_files
- •3.1.2.10.Таблица made_projects
- •3.1.2.11.Таблица projects
- •3.1.2.12.Таблица service_groups
- •3.1.2.13.Таблица services
- •3.1.2.14.Таблица calculations
- •3.1.2.15.Таблица calculation_items
- •3.1.2.16.Таблица calculation_items
- •3.1.2.17.Таблица menu_groups
- •3.1.2.18.Таблица menu_items
- •3.1.2.19.Таблица pages
- •3.1.2.20.Таблица special_pages_settings
- •3.2.Разработка модулей сайта
- •3.2.1.Главный модуль
- •3.2.2.Модуль показа новостей
- •5.Тестирование и отладка web-сайта
- •5.1.Модульное тестирование
- •5.2.Проверка работы сайта в разных браузерах. Тестирование web-сайта в целом
- •5.3.Проверка на устойчивость к проникновению
- •6.Безопасность при работе за компьютером
- •6.1.Особенности работы с компьютерами
- •6.2.Основные вредные и опасные факторы при работе с компьютером
- •6.2.1.Повышенное зрительное напряжение
- •6.2.2.Нервное напряжение
- •6.2.3.Костно-мышечные напряжения
- •6.2.4.Электромагнитные поля и последствия их воздействия
- •6.2.5.Шум, выделение вредных веществ, тепловыделение, опасность поражения электрическим током, риск возгорания
- •6.3.Меры безопасности при работе с пэвм
- •6.3.1.Факторы охраны труда на рабочем месте
- •6.3.2.Требования к параметрам излучений дисплеев
- •6.3.3.Требования к цветовым параметрам дисплеев
- •6.3.4.Электромагнитное излучение на рабочем месте
- •6.3.5.Жидкокристаллические мониторы
- •6.3.6.Оптимизация визуальных характеристик дисплеев
- •6.3.7.Освещение и организация рабочего места
- •6.3.8.Режим труда и отдыха
- •6.3.9.Электробезопасность при работе с пэвм
- •6.3.10.Пожарная безопасность
- •6.3.11.Микроклимат на рабочем месте
- •7.Экономическая часть
- •7.1.Определение затрат на разработку и создание программных средств.
- •7.1.1.Затраты на оплату труда
- •7.1.2.Затраты на материалы
- •7.1.3.Затраты на аренду
- •7.1.4.Затраты на электроэнергию
- •7.1.5.Затраты на внедрение
- •7.2.Затраты на эксплуатацию системы
- •7.3.Годовой экономический эффект от применения.
- •7.4.Срок окупаемости затрат.
- •7.5.Итоговые экономические показатели проекта.
- •Заключение
- •Список литературы и прочих источников информации
- •П. 3.2 модуль подключаемых заголовков header.Inc.Php
- •П. 3.3 модуль fглобальных переменных gvars.Inc.Php
2.2.8.Работа с базой данных.
При написании данного программного продукта будет использоваться паттерн проектирования Active Record, который даёт возможность обращаться к записи таблицы базы данных как к классу, получая доступ к её полям через поля класса. Пример работы с объектами, реализующими его:
$post = new Post();
$post->setTitle ('My first blog post!!');
$post->setAuthor(”admin”);
$post->save();
$firstPost = Post::find_by_id(1);
$firstPost->delete();
$adminPosts = Post::find_by_author(“admin”);
Чтобы сэкономить время на реализации паттерна ActiveRecord был использована готовая библиотека PHP ActiveRecord (http://www.phpactiverecord.org/)
Также будет использована библиотека PDO (PHP Data Objects), поставляемая с версии 5.1 в стандартный пакет поставки библиотек PHP. PDO позволяет унифицировать обращения к базам данных различного типа и использовать prepared statements с подставляемыми параметрами, что увеличивает безопасность запросов и повышает читабельность программного кода.
Пример использования prepared statements :
$DB = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
$PS = $DB->prepare("INSERT INTO folks (name, addr, city) values (:name, :addr, :city)");
$PS ->bindParam(':name', $DB->quote($name));
$PS ->bindParam(':name', $DB->quote($addr));
$PS ->bindParam(':name', $DB->quote($city));
$PS ->execute();
Также в число замечательных возможностей PDO входят транзакции с авто-rollback’ом при ошибках и fetch-as-class (сериализация полей записи базы данных в поля класса и вызов его конструктора).
2.2.9.Визуальный редактор статей и новостей
Для удобного редактирования статей и новостей работниками фирмы планируется встроить в сайт готовый бесплатный WYSIWYG-редактор Redactor (http://imperavi.com/redactor/)
Созданные в этом редакторе статьи будут храниться в html-code в таблицах базы данных Pages и News для страниц и новостей соотвественно.
2.3.Карта web-сайта
Рис 2.1. Карта сайта
3.РАЗРАБОТКА КОМПОНЕНТОВ WEB-САЙТА
3.1.Разработка Базы Данных
В первую очередь сайт призван хранить, обрабатывать и показывать пользователям большие объемы разнородной информации. Поэтому разработку компонентов сайта логичнее всего начать именно с разработки базы данных.
3.1.1.Структура базы данных.
Структура получившейся базы данных (рис. 3.1) разработана в среде визуального проектирования баз данных MySQL Workshop.
Рис. 3.1 Структура базы данных
3.1.2.Описание таблиц базы данных
Легенда:
PK – PRIMARY KEY
FK (поле таблицы) – FOREIGN KEY
NN – NOT NULL
AI – AUTO INCREMENT
UQ – UNIQUE
умолч. – значение по умолчанию
мод. – модификаторы
3.1.2.1.Таблица users
Таблица users содержит имена пользователей, информацию о них и их права доступа. (см. структуру в табл. 3.1)
Таблица 3.1. Структура таблицы users
-
назв.-е поля
тип данных
умолч.
описание
мод.
login
VACHAR(50)
уникальный идентификатор
PK, AI
passhash
VARCHAR(32)
md5-хэш пароля
NN
email
TEXT
Адрес электронной почты
NN
email_check_code
VARCHAR(10)
NN
email_checked
BOOL
0
access_level
VARCHAR(20)
“user”
уровень доступа (роль пользователя на сайте)
name
TEXT
полное имя пользователя
address
TEXT
phone
VARCHAR(15)
телефон пользователя
mob_phone
VARCHAR(15)
мобильный телефон пользователя
html_info
TEXT
дополнительная информация о пользователе в формате html (обычно контакты)
mail_news
BOOL
0
NN
last_visit
DATETIME
banned
BOOL
флаг блокировки возможности захода на сайт для данного пользователя
banned_till
DATETIME
дата и время автоматической разблокировки
banned_reason
TEXT
причина блокировки аккаунта пользователя
Возможные значения перечисляемых типов:
access_level: “user”, “worker”, “admin”