Создание Web каталога ювелирных изделий с использованием возможностей PHP фреймворка Yii
ГОСУДАРСТВЕННЫЙ КОМИТЕТ СВЯЗИ, ИНФОРМАТИЗАЦИИ И ТЕЛЕКОММУНИКАЦИОННЫХ ТЕХНОЛОГИЙ РЕСПУБЛИКИ УЗБЕКИСТАН |
САМАРКАНДСКИЙ ФИЛИАЛ |
ТАШКЕНТСКОГО УНИВЕРСИТЕТА ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ |
ФАКУЛЬТЕТ «ИНФОРМАЦИОННЫХ И ПЕДАГОГИЧЕСКИХ ТЕХНОЛОГИЙ» КАФЕДРА «ИНФОРМАТИКИ И ИНФОРМАЦИОННЫХ ТЕХНОЛОГИИ» |
Выпускная квалификационная работа
для получения
академической степени
«Создание Web каталога ювелирных изделий с использованием возможностей PHP фреймворка Yii»
Рассмотрена на заседании
кафедры
(протокол №___ от “___” ______ 2013г.)
студент группы 406
и допущена к защите.
Заведующий кафедрой
___________ Махмудов З.
г. Самарканд 2013.
ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ
Актуальность темы. Модернизация, техническое обновление, широкое внедрение инновационных технологий – надежный путь преодоления кризиса и выхода Узбекистана на новые рубежи на мировом рынке. Нам необходимо тщательным образом проанализировать, какие факторы мешают выйти из кризиса? Внедряя новые технологии, мы перестроим многое, мы обнаружим минусы системы, поставим цель и добьемся её [1]. Суммарные годовые доходы компаний только на рынке подключения к Интернету оцениваются сегодня в 45 млрд. долларов. Небольшие фирмы, не ведущие бизнеса в традиционной форме и представленные исключительно в Интернет, вырываются в лидеры, оставляя позади неповоротливых гигантов. Это подчеркивает актуальность дипломного проекта «Создание Web каталога ювелирных изделий с использованием возможностей PHP фреймворка Yii».
Цель работы. Данный дипломный проект разработан по заказу Общества с ограниченной ответственностью Производственно Коммерческой Фирмы «750.uz». Целью дипломного проекта является создание интернет-каталога для веб-сайта, удовлетворяющего требованиям заказчика. Задачей проекта было создать удобный и эффективный инструмент, максимально упрощающий процесс осуществления заказа клиентом ювелирных изделий.
По предъявленным требованиям web-приложение должно содержать:
1)Информацию о продукции и услугах компаний.
2) Форму обратной связи
3)Галерею ювелирных изделий.
4)Возможность заказа
продукции и услуг через
Определение состава средств разработки обусловлена на выборе языка программирования PHP5, ввиду высокого уровня ее развития и широкого выбора компонентов, модулей, плагинов, а также соответствие самым жестким требованиям безопасности.
Структура и
объем выпускной
В первой главе описываются основные технологии, при помощи которых был реализован web-сайт.
Во второй главе подробно
рассмотрена программная
Третья глава содержит описание графических пользовательских интерфейсов. Описывается разработанный модуль – возможности заказа продукции.
1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ
1.1 Принципы построения web-сайта
Web-сайт создается для производственно коммерческой фирмы, производящей и реализующей ювелирные изделия, основной целью которого является распространение информации о фирме и реализуемой продукции, а также организация web-магазина. Были поставлены следующие задачи:
- поднятие престижа компании;
- продвижение торговой марки;
- доступность информации о продукции и ценах для клиентов;
- прямая продажа продукции в Internet, организация интернет - каталога.
Для того чтобы выполнить поставленные задачи необходимо сформировать категории пользователей, на которые рассчитан web-сайт. В дальнейшем все вопросы о целесообразности каких-либо действий, связанных с сайтом, должны рассматриваться в соответствии с тем, как отреагируют на них посетители, и насколько они будут способствовать достижению главной цели. После того, как сформулированы цели и определены категории пользователей, необходимо распределить подготовленную информацию по web-документам, продумать связи между ними и предусмотреть дополнительные навигационные возможности, например, поисковую систему по изделиям сайта.
Типичная структура Web-сайта фирмы обычно выглядит так:
1) Информация о компании. Следует рассказать о целях фирмы, ее истории. Показать, какую выгоду получат клиенты от сотрудничества именно с этой фирмой, а не с другими компаниями.
2) На сайте размещаются
иллюстрации ювелирных изделий,
3) Лента новостей информирует клиентов о новых изделиях, предоставляемых фирмой.
4) В контактной информации
сообщается, как можно связаться
с магазином, адрес места
При наполнении web-сайта всегда нужно помнить два принципа: уникальность и достоверность публикуемых материалов. Уникальность является первоочередным требованием к содержанию. В Internet уже может существовать немало страниц с похожими материалами. Web-сайт должен чем-то отличаться от серверов с аналогичной тематикой. Наличие уникальных материалов на страницах увеличит ее посещаемость. Для того чтобы создать уникальный информационный ресурс, не обязательно изобретать что-то принципиально новое, можно по-другому оформить уже существующие ресурсы, но при этом не заставлять клиента тратить много времени на их поиск. Проверить же ресурсы на уникальность можно с помощью поисковых серверов. Что касается авторитетности, то все зависит от того, насколько тщательно подбирается информация, проверяется и своевременно обновляется. При создании сайта необходимо помнить, что составляющие его отдельные документы должны быть объединены общим стилем оформления и средствами навигации. Благодаря единообразно сделанным документам пользователи будут отличать web-сайт от других и запомнят его. Это не значит, что документы должны быть похожи, но общая идея, единый стиль, должны присутствовать непременно.
Кроме того, единство стиля позволяет использовать шаблоны — страницы, содержащие только общие элементы оформления и навигации (без информационного наполнения). При использовании шаблона для получения готовой страницы достаточно лишь внести в него необходимую информацию. Последовательность, логичность, постоянство — вот необходимые качества хорошего сайта. Значительно упрощают работу по формированию и изменению стиля сайта каскадные таблицы стилей. После того, как определены цели, задана структура и собрана текстовая и графическая информация, разрабатывается внешний вид сайта. Спектр возможных решений здесь очень широк: от просмотра уже существующих страниц и создания подобных, до обращения за помощью к профессиональным дизайнерам и художникам. В то же время, необходимо помнить о некоторых уже сложившихся правилах построения web-документов, из которых состоит сайт.
На сегодня представление
о структуре документа
Многочисленные исследования
показали, что посетители сайтов очень
нетерпеливы и дальше, чем на два
уровня документов, углубляться в
содержание сервера не хотят. Поэтому,
создавая сайт большого объема, следует
предусмотреть промежуточные
Прежде всего, следует отметить, что содержание web-документов должно в полной мере отвечать всем требованиям, предъявляемым к обычным газетным или журнальным публикациям: грамматическая и орфографическая корректность, точность и достоверность предлагаемых материалов, и многое другое.
При разработке страницы
нужно очень внимательно
Использование SSI (Server Side Includes) позволяет серверу вставлять небольшие объемы динамических данных непосредственно в пересылаемый пользователю HTML-документ. Запрошенная HTML-страница «просматривается» в поисках элементов SSI. Обнаружив такой элемент, сервер вставляет требуемую динамическую информацию. С помощью SSI можно включать один файл в состав другого, исполнять CGI-сценарии и передавать другую информацию. Необходимо уточнить, какие именно функции SSI поддерживаются на сервере провайдера. Поддержка сервером провайдера CGI-сценариев. CGI (Common Gateway Interface, общий шлюзовой интерфейс) — спецификация, позволяющая серверу выполнять произвольные прикладные программы. В результате работы таких программ создаются HTML-документы. С помощью CGI-сценариев могут приниматься данные от пользователя, они позволяют организовать диалог на страницах, запросы к базам данных и т.д. Чтобы пользователю было легко просматривать страницы, web-сервер провайдера должен уметь автоматически перекодировать документы в зависимости от поступившего запроса. В противном случае либо содержание вашего сайта для некоторых посетителей будет нечитаемым, либо придется обеспечивать несколько копий сайта — по одной на каждую поддерживаемую кодировку [8].
1.2 Языки web-программирования
Языки сценариев и
программирования позволяют пользователям
взаимодействовать с web-
Возможности языков программирования выше, чем у языков сценариев, но в то же время они сложнее.
PHP (англ. PHP:HypertextPreprocessor) – это широко используемый язык сценариев общего назначения с открытым исходным кодом. PHP это язык программирования, специально разработанный для написания web-приложений (сценариев), исполняющихся на web-сервере.
Аббревиатура PHP означает «Hypertext Preprocessor (Препроцессор Гипертекста)». Синтаксис языка берет начало из C, Java и Perl. PHP достаточно прост для изучения. Преимуществом PHP является предоставление web-разработчикам возможности быстрого создания динамически генерируемых web-страниц.
Важным преимуществом языка PHP перед такими языками, как языков Perl и C заключается в возможности создания HTML документов с внедренными командами PHP.
Значительным отличием PHP от какого-либо кода, выполняющегося на стороне клиента, например, JavaScript, является то, что PHP-скрипты выполняются на стороне сервера. Вы даже можете сконфигурировать свой сервер таким образом, чтобы HTML-файлы обрабатывались процессором PHP, так что клиенты даже не смогут узнать, получают ли они обычный HTML-файл или результат выполнения скрипта.
PHP позволяет создавать качественные web-приложения за очень короткие сроки, получая продукты, легко модифицируемые и поддерживаемые в будущем. PHP прост для освоения, и вместе с тем способен удовлетворить запросы профессиональных программистов. Язык PHP постоянно совершенствуется, и ему обеспечено долгое доминирование в области языков web-программирования, по крайней мере, в ближайшее время [4].
Возможности PHP очень большие. Главным образом, область применения PHP сфокусирована на написание скриптов, работающих на стороне сервера; таким образом, PHP способен выполнять всё то, что выполняет любая другая программа CGI. Например, обрабатывать данных форм, генерировать динамические страницы, отсылать и принимать cookies. Но PHP способен выполнять и множество других задач.
Существуют три основных области, где используется PHP.
1) Создание скриптов для выполнения на стороне сервера. PHP наиболее широко используется именно таким образом. Все, что необходимо, это парсер PHP (в виде программы CGI или серверного модуля), в web-сервер и браузер. Для возможности просмотра результатов выполнения PHP-скриптов в браузере, необходим работающий web-сервер и установленный PHP.
2) Создание скриптов
для выполнения в командной
строке. Можно создать PHP-скрипт,
способный запускаться вне
3) Создание приложений
GUI, выполняющихся на стороне
PHP доступен для большинства операционных систем, включая
Linux, многие модификации Unix (такие, как
HP-UX, Solaris и OpenBSD), MicrosoftWindows, Mac OS X, RISC OS, и
многих других. Также в PHP включена поддержка
большинства современных web-серверов,
таких, как Apache, MicrosoftInternetInformationSe
Таким образом, PHP предоставляет свободу выбора операционной системы и web-сервера. Кроме того, дает возможность выбора между использованием процедурного или объектно-ориентированного программирования или же их сочетания.
PHP способен не только
выдавать HTML (англ. HyperTextMarkupLanguage). Возможности
PHP включают формирование
Одним из значительных преимуществ PHP является поддержка широкого круга баз данных. Создание скрипта, использующего базы данных, - очень просто. В настоящее время PHP поддерживает следующие базы данных (Adabas D, dBase, Empress, FilePro, Hyperwave, IBM DB2, Ingres, Informix, InterBase, FrontBase, mSQLDirect MS-SQL, Oracle, Ovrimos, PostgreSQL, Solid, MySQL, ODBC, Sybase, Velocis, Unixdbm).
Также в PHP включена поддержка DBX для работы на абстрактном уровне, что позволяет работать с любой базой данных, использующих DBX. Кроме того, PHP поддерживает ODBC (Open Database Connection standard), таким образом, существует возможность работать с любой базой данных, поддерживающей этот стандарт.
PHP также поддерживает «общение» с другими сервисами с использованием таких протоколов, как LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (на платформах Windows) и многих других. Кроме того, имеется возможность работать с сетевыми сокетами «напрямую». PHP поддерживает стандарт обмена сложными структурами данных WDDX. Обращая внимание на взаимодействие между различными языками, следует упомянуть о поддержке объектов Java и возможности их использования в качестве объектов PHP. Для доступа к удаленным объектам можно использовать расширение CORBA.
PHP включает средства обработки текстовой информации, начиная с регулярных выражений Perl или POSIX Extended и заканчивая парсером документов XML. Для парсинга XML используются стандарты SAX и DOM. Для преобразования документов XML можно использовать расширение XSLT.
Последним по порядку является поддержка многих других расширений, таких, как функции поисковой машины mnoGoSearch, функции IRC Gateway, функции для работы со сжатыми файлами (gzip, bz2), функции календарных вычислений, функции перевода и многое другое.
Главным фактором языка РНР является практичность. РНР должен предоставить программисту средства для быстрого и эффективного решения поставленных задач. Практический характер РНР обусловлен пятью важными характеристиками: традиционностью, простотой, эффективностью, безопасностью, гибкостью.
Существует еще одна «характеристика», которая делает РНР особенно привлекательным: он распространяется бесплатно. С открытыми исходными кодами (OpenSource).
Сценарий РНР может состоять из 10 000 строк или из одной строки — все зависит от специфики задачи. Не приходится подгружать библиотеки, указывать специальные параметры компиляции. Механизм РНР начинает выполнять код после первой экранирующей последовательности (<?) и продолжает выполнение до того момента, когда он встретит парную экранирующую последовательность (?>). Если код имеет правильный синтаксис, он исполняется в точности так, как указал программист.
Язык PHP может быть встроен непосредственно в html-код страниц, который, в свою очередь будет корректно обрабатываться PHP-интерпретатором. Возможно также использование PHP для формирования HTML-документов, что избавит от повторных вызовов внешних сценариев.
Большое разнообразие встроенных
функций PHP избавляет разработчика
от написания многострочных
Эффективность является исключительно важным фактором при программировании для многопользовательских сред, к числу которых относится и web.
По некоторым оценкам, большинство PHP-сценариев (особенно не очень больших размеров) обрабатываются быстрее аналогичных им программ, написанных на Perl. Однако, чтобы не делали разработчики PHP, откомпилированные исполняемые файлы будут работать значительно быстрее – в десятки, а иногда и в сотни раз. Но производительность PHP вполне достаточна для создания вполне серьезных web-приложений.
РНР предоставляет в
распоряжение разработчиков и
В РНР реализованы механизмы безопасности, находящиеся под управлением администраторов; при правильной настройке РНР это обеспечивает максимальную свободу действий и безопасность. РНР может работать в так называемом безопасном режиме (safemode), который ограничивает возможности применения РНР пользователями по ряду важных показателей. Например, можно ограничить максимальное время выполнения и использование памяти (неконтролируемый расход памяти отрицательно влияет на быстродействие сервера). По аналогии с cgi-bin администратор также может устанавливать ограничения на каталоги, в которых пользователь может просматривать и исполнять сценарии РНР, а также использовать сценарии РНР для просмотра конфиденциальной информации на сервере.
В стандартный набор функций РНР входит ряд надежных механизмов шифрования. РНР также совместим со многими приложениями независимых фирм, что позволяет легко интегрировать его с защищенными технологиями электронной коммерции. Другое преимущество заключается в том, что исходный текст сценариев РНР нельзя просмотреть в браузере, поскольку сценарий компилируется до его отправки по запросу пользователя.
Поскольку РНР является встраиваемым (embedded) языком, он отличается исключительной гибкостью по отношению к потребностям разработчика. Хотя РНР обычно рекомендуется использовать в сочетании с HTML, он с таким же успехом интегрируется и в JavaScript, WML, XML и другие языки. Кроме того, хорошо структурированные приложения РНР легко расширяются по мере необходимости (впрочем, это относится ко всем основным языкам программирования) [7].
Не существует проблем
с зависимостью от браузеров, поскольку
перед отправкой клиенту
Поскольку РНР не содержит кода, ориентированного на конкретный web-сервер, пользователи не ограничиваются определенными серверами (возможно, незнакомыми для них). Apache, Microsoft IIS, NetscapeEnterpriseServer, Stronghold и Zeus — РНР работает на всех перечисленных серверах. Поскольку эти серверы работают на разных платформах, РНР в целом является платформенно-независимым языком и существует на таких платформах, как UNIX, Solaris, FreeBSD и Windows 95/98/NT/2000/XP/2003/Vista [15].
Средства РНР позволяют программисту работать с внешними компонентами, такими как EnterpriseJavaBeans или СОМ-объекты Win32. Благодаря этим новым возможностям РНР занимает достойное место среди современных технологий и обеспечивает масштабирование проектов до необходимых пределов.
1.3 Технология JavaScript
JavaScript — объектно-ориентированный скриптовый язык программирования. Является диалектом языка ECMAScript.
JavaScript обычно используется
как встраиваемый язык для
программного доступа к
Основные архитектурные черты: динамическая типизация, слабая типизация, автоматическое управление памятью, прототипное программирование, функции как объекты первого класса.
JavaScript - предназначен для написания сценариев для активных HTML-страниц. Язык JavaScript не имеет никакого отношения к языку Java. JavaScript не предназначен для создания автономных приложений. Программа на JavaScript встраивается непосредственно в исходный текст HTML-документа и интерпретируется браузером по мере загрузки этого документа. С помощью JavaScript можно динамически изменять текст загружаемого HTML-документа и реагировать на события, связанные с действиями посетителя или изменениями состояния документа или окна.
Важная особенность JavaScript – объектная ориентированность. Программисту доступны многочисленные объекты, такие, как документы, гиперссылки, формы, фреймы и т.д. Объекты характеризуются описательной информацией (свойствами) и возможными действиями (методами).
JavaScript имеет ряд свойств, присущих функциональным языкам — функции как объекты первого класса, объекты как списки, карринг, анонимные функции, замыкания — что придаёт языку дополнительную гибкость [15].
Несмотря на схожий с Си синтаксис, JavaScript по сравнению с языком Си имеет коренные отличия:
- объекты, с возможностью интроспекции;
- функции как объекты первого класса;
- автоматическое приведение типов;
- автоматическая сборка мусора;
2. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ПРИЛОЖЕНИЯ
2.1 Проектирование архитектуры приложения
Создание архитектуры приложения – это процесс формирования структурированного решения, отвечающего всем техническим и операционным требованиям и обеспечивающего оптимальные общие атрибуты качества, такие как производительность, безопасность и управляемость. Он включает принятие ряда решений на основании широкого диапазона факторов. Каждое из этих решений может иметь существенное влияние на качество, производительность, удобство обслуживания и общий успех приложения.
Архитектура программного обеспечения (ПО) заключает в себе ряд важных решений об организации программной системы, среди которых выбор структурных элементов и их интерфейсов, составляющих и объединяющих систему в единое целое; поведение, обеспечиваемое совместной работой этих элементов; организацию этих структурных и поведенческих элементов в более крупные подсистемы, а также архитектурный стиль, которого придерживается данная организация. Выбор архитектуры ПО также касается функциональности, удобства использования, устойчивости, производительности, повторного использования, понятности, экономических и технологических ограничений, эстетического восприятия и поиска компромиссов.
Как и любая другая сложная структура, ПО должно строиться на прочном фундаменте. Неправильное определение ключевых сценариев, неправильное проектирование общих вопросов или неспособность выявить долгосрочные последствия основных решений могут поставить под угрозу все приложение [8].
Web-сайт состоит из следующих основных функциональных частей (рис. 4.):
- Каталог товаров
- Поисковая система
- Пользовательская корзина
- Форма отправки заказа
Рис. 2.1.1 Основные функциональные части сайта
Каталог представляет собой многоуровневую структуру данных, которая простым и понятным способом производит упорядочивание товаров (рис. 2.1.2.)
Рис.2.1.2. Многоуровневая структура данных
Проще всего такой каталог представить в виде дерева объектов, верхний уровень которого состоит из списка разделов. Разделы могут содержать подразделы или ссылки на конкретный товар и т.д. Такое упорядочивание просто необходимо для удобного и быстрого поиска и заказа товаров. Поисковая система является обязательным элементом каталога и реализуется на стороне сервера (рис.2.1.3.).
Рис. 2.1.3.Поисковая система
Несмотря на то, что каталог обеспечивает упорядочивание и группировку данных, поисковая система дает пользователю возможность быстрого поиска информации, что особенно важно в том случае, когда каталог представляет собой достаточно разветвленную структуру данных с большим количеством разделов, подразделов и товаров, пользователь плохо представляет в каком разделе может находиться интересующий его товар и есть ли он в каталоге вообще. Поисковая система в некоторых случаях позволяет значительно сократить количество переходов между страницами каталога для доступа к интересующей информации.
Особенность реализации поиска в Интернете заключается в том, что происходит выборка всех записей, которые удовлетворяют условиям запроса. В случае большой выборки данных вывод результатов поиска осуществляется. Как правило, посетители не просматривают все страницы выборки, ограничиваясь двумя или тремя. Поэтому данный механизм поиска во многих случаях работает крайне медленно и неэффективно. Однако он позволяет осуществить выборку одинаковых товаров от разных поставщиков, сравнить их параметры между собой и выбрать оптимальный вариант [15].
Корзина отображает название изделия или изделий, артикул, цену, их количество и итог. Если товар еще не выбран, то при входе в корзину будет сообщено, что она пуста и будет предложено продолжать покупки.
Пользовательская корзина представляет собой некоторый массив данных, который служит для хранения заказанного пользователем товара
Форма отправки заказа служит для ввода контактной информации заказчика и отправки ее и заказа на электронный ящик организации (рис. 2.1.4.).
Рис. 2.1.4. Контактная информация заказчика
Древовидной структурой данных называется конечное множество элементов-узлов, между которыми существуют отношения – связь исходного и порожденного.