Обоснование и выбор программного обеспечения
2.2.1. CMS OpenCart
В качестве CMS для проектирования Интернет-магазина был выбран CMS OpenCart.
CMS OpenCart распространяется бесплатно по лицензии GNU GPL. Родом данная CMS из Гонконга, функционирует посредством PHP + MySQL, автор Daniel Kerr (Даниэль Керр), используется с целью самостоятельного и профессионального создания интернет-магазина.
Весьма популярна за рубежом и в России, потому к ней легко найти документацию (пользователя и разработчика), переведённую на русский язык версию и даже официальную русскоязычную поддержку.
Российское сообщество разработчиков насчитывает несколько тысяч человек, поэтому в случае нужды в доработке исходного кода, не будет проблем с поиском специалиста. Ещё одним преимуществом OpenCart является множество разработанных под неё модулей, расширений и готовых сборок.
Из функционала рассматриваемая CMS OpenCart имеет большинство необходимых функций для проектирования современного интернет-магазина. Оформление витрины современное, также как каталога и карточек товаров. Чтобы управлять магазином навыков программирования не требуется. Встроенных шаблонов нет и в базовой версии доступен лишь один вариант дизайна.
CMS OpenCart представляет собой многофункциональную, легкую в использовании, дружественная поисковым системам и визуально привлекательным интерфейсом cms.
Преимуществами OpenCart выступают:
ü лёгкость управления;
ü оригинальная структура сайта (каталога, карточек товара, формы заказа);
ü удобная встроенная форма заказа товара и корзина. Вся процедура заказа разбита на этапы, потеряться клиенту будет просто невозможно;
ü магазин интегрирован с платёжными системами (PayPal и другими). Можно дополнительно приобрести модули для популярных платёжных систем, к примеру как WebMoney, Яндекс.Деньги, QIWI и иные;
ü огромное количество дополнительных дешевых и бесплатных доработок, расширений и шаблонов. Посредством их возможно расширить и без того широкие возможности магазина;
ü в администрировании CMS предусмотрено резервное копирование базы данных [22].
В качестве недостатков OpenCart вытсупают:
ü так как система бесплатная, то проблемы есть как в самой системе, так и в модулях, которые к ней разрабатываются;
ü одна и та же страница может отражаться по различным адресам, особенно если каталог имеет многоуровневую вложенность, то есть возникают дубли страниц;
ü потому как платформа зарубежная, все входящие в стандартный комплект модули рассчитаны на иностранные системы оплаты и доставки;
ü неудобная установка дополнительных модулей и шаблонов;
ü отсутствие загрузки из Excel и 1С. Потому как многие пользователи привыкли к Excel и 1С бухгалтерии, особенно владельцы магазинов (прайс-листы, ведение бухгалтерии и так далее), то это может считаться серьёзным недостатком;
ü нет функции быстрой правки цен и других характеристик из администрирования. Иначе говоря, если появляется необходимость осуществить поправку в ценах к товарам во всём магазине, то придется перебивать цены отдельно для каждого товара, что очень неудобно;
ü нет возможности, без знания программирования, менять форму заказа товара.
Основными характеристиками CMS OpenCart рассматриваются:
ü неограниченное количество категорий;
ü неограниченное число товаров;
ü неограниченное число производителей;
ü открытый исходный код;
ü бесплатная документация;
ü изменяемые шаблоны;
ü поддержка мультивалютности и мультиязычности;
ü автоматический изменение размеров загружаемых картинок;
ü обзор товаров;
ü 20 способов оплаты (2Checkout, LiqPay, PayPal, eWay и так далее);
ü 8 способов доставки (среди известных и используемых в России только UPS);
ü ЧПУ и метатеги.
В качестве технических требований к хостингу при использовании CMS OpenCart выступают следующие:
– Apache or Windows IIS;
– PHP 5.X.X или выше;
– MySQL 4 или выше;
– PHP Настройки;
– Register Globals: Off;
– Magic Quotes GPC: Off File Uploads: On
– Session Auto Start: Off [22]
2.2.2 Выбор системы управления баз данных (СУБД).
База данных сайта представляет собой такой механизм, который обеспечивает хранение, доступ, первичную обработку и поиск информации.
Всякий динамический сайт, особенно Интернет-магазин, который использует структурированные данные, предполагает использование базы данных.
Проектирование базы данных для сайта считается одним из основных моментов ранней стадии проектирования.
База данных должна включать таблицы и поля для хранения требуемых данных, определенных далее в тексте спецификаций требований.
Интернет-сервер, где будет реализован такой этап, к сожалению, ограничен в выборе как программного обеспечения, так и в выборе СУБД. Потому, в качестве целевой СУБД с целью проектирования Интернет-магазина будет применен MySQL.
MySQL представляет собой свободную систему управления базами данных (СУБД). MySQL выступает собственностью компании Oracle Corporation, которая получила её совместно с поглощённой Sun Microsystems, реализующей проектирование и поддержку приложения. Распространяется под GNU General Public License либо под собственной коммерческой лицензией. Кроме того, разработчики формируют функциональность по заказу лицензионных пользователей, именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации [8].
Гибкость СУБД MySQL формируется поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, которые поддерживают полнотекстовый поиск, так и таблицы InnoDB, которые поддерживают транзакции на уровне отдельных записей.
Помимо этого, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, который демонстрирует принципы формирования новых типов таблиц. Посредством открытой архитектуры и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.
MySQL ориентирована на большое количество платформ: AIX, BSDi, FreeBSD, HP-UX, Linux, Mac OS X, NetBSD, OpenBSD, OS/2 Warp, SGI IRIX, Solaris, SunOS, SCO OpenServer, SCO UnixWare, Tru64, Windows 95, Windows 98, Windows NT, Windows 2000, Windows XP, Windows Server 2003, WinCE, Windows Vista и Windows 7. Имеется кроме того MySQL к OpenVMS.
Необходимо заметить, что на официальном сайте СУБД с целью свободной загрузки предоставляются не только исходные коды, но и откомпилированные и оптимизированные под определенные операционные системы готовые исполняемые модули СУБД MySQL.
Рассмотрим достоинства выбранной СУБД:
– быстродействие. MySQL – достаточно быстродействующая СУБД. Разработчики склоняются к мнению, что СУБД MySQL выступает в качестве одной из самых быстрых баз данных из существующих на современном рынке;
– простота применения. СУБД MySQL считается высокопроизводительной и относительно простой в применении СУБД, которую существенно легче установить и администрировать, нежели многие большие системы;
– поддержка языка запросов. MySQL «понимает» команды языка SQL. MySQL кроме того поддерживает интерфейс ODBC (Open Database Connectivity), протокол интерфейса с базами данных, который был разработан компанией Microsoft;
– возможности. Сервер позволяет одновременно подключаться неограниченному количеству пользователей. Доступ к серверу можно реализовать в интерактивном режиме посредством разных интерфейсов, которые позволяют вводить запросы и просматривать полученные результаты: это программы-клиенты, которые работают с командной строкой, Web-браузеры [8].
Помимо этого, в наличии имеются программные интерфейсы для таких языков, как C, Perl, Java, PHP и Python;
– взаимодействие и безопасность. MySQL используется с целью функционирования в сети и может быть доступна для работы через сеть Интернет, отсюда, с данными можно работать в любой точке земного шара. Однако при этом СУБД MySQL имеет развитую систему защиты от несанкционированного доступа;
– переносимость. СУБД MySQL отлично функционирует как под управлением самых разных версий UNIX, так и под управлением систем, которые не применяют UNIX, таких как Windows и OS/2. СУБД MySQL функционирует как на домашних ПК, так и на мощных серверах.
Доступ на создание базы данных и таблиц в ней будет осуществляться через командную строку [14].
2.2.3 PHP
PHP представляет собой распространённый Открытый ресурс – язык скриптинга (сценариев) общего назначения, который спроектирован специально для Web и который можно внедрять в HTML.
PHP отличается от иных схожих языков, типа клиентского JavaScript, тем, что выполнение кода осуществляется напрямую на сервере. Когда существует скрипт, который аналогичен вышеприведённому на сервере, то клиент получит результат деятельности такого скрипта, не имея возможности установить, каков был исходный код.
Наилучшим качеством PHP выступает то, что он предельно прост для новичка в программировании, но предлагает много продвинутых возможностей для программиста-профессионала.
Имеется три главных области использования PHP [13].
– формирование скриптов с целью выполнения на стороне сервера. PHP классически и наиболее активно применяется подобным образом. Для этого необходимы три вещи. Интерпретатор PHP (в виде программы CGI либо серверного модуля), веб-сервер и браузер. Для того чтобы можно было просматривать результаты реализации PHP-скриптов в браузере, нужен работающий веб-сервер и установленный PHP. Просмотреть вывод PHP-программы можно в браузере, получив PHP-страницу, которая была сгенерирована сервером;
– формирование скриптов с целью выполнения в командной строке. Можно сформировать PHP-скрипт, который способен запускаться без сервера либо браузера. Все, что потребуется - парсер PHP. Подобный способ применения PHP идеально подходит для скриптов, которые должны выполняться регулярно, к примеру, с помощью cron (на платформах *nix либо Linux) либо посредством планировщика задач (Task Scheduler) на платформах Windows. Такие скрипты также могут быть применены в задачах простой обработки текстов;
– проектирование оконных приложений, которые выполняются на стороне. Подобным образом можно проектировать и кросс-платформенные приложения. PHP-GTK считается расширением PHP и не поставляется совместно с основным дистрибутивом PHP.
PHP доступен для большинства операционных систем, в том числе Linux, многие модификации Unix (к примеру как HP-UX, Solaris и OpenBSD), Microsoft Windows, Mac OS X, RISC OS, и многие иные. Кроме того, в PHP существует поддержка большей части современных веб-серверов, к примеру как Apache, IIS и многих иных. PHP может функционировать либо в качестве модуля либо функционировать как процессор CGI [19].
PHP может генерировать не только HTML. Доступно формирование изображений, файлов PDF и даже роликов Flash (с применением libswf и Ming), создаваемых «на лету». PHP также может генерировать всякие текстовые данные, к примеру, как XHTML и иные XML-файлы.
PHP может производить автоматическую генерацию таких файлов и сохранять их в файловой системе сервера вместо того, чтобы отдавать клиенту, организуя, таким образом, серверный кэш для динамического контента.
В качестве одного из существенных преимуществ PHP выступает поддержка широкого круга баз данных. Создать скрипт, который применяет базы данных, - существенно просто. Можно использовать расширение, которое специфично для отдельной базы данных (к примеру, как mysql) либо применять уровень абстракции от базы данных, к примеру, как PDO, либо подключиться к любой базе данных, которая поддерживает Открытый Стандарт Соединения Баз Данных (ODBC), посредством одноименного расширения ODBC. Для иных баз данных, к примеру, как CouchDB, можно воспользоваться cURL либо сокетами.
Кроме того, PHP поддерживает «общение» с иными сервисами посредством таких протоколов, как LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (на платформах Windows) и многих иных. Помимо этого, имеется возможность работать с сетевыми сокетами напрямую. PHP поддерживает стандарт обмена сложными структурами данных WDDX практически между всеми языками веб-программирования. Обращая внимание на взаимодействие между различными языками, необходимо сказать о поддержке объектов Java и возможности их применения в качестве объектов PHP [13].
PHP имеет много возможностей по обработке текста, в том числе регулярные выражения Perl (PCRE) и много иных расширений и инструментов для обработки и доступа к XML документам.
В PHP обработка XML-документов стандартизирована и происходит на мощной базе библиотеки libxml2, расширив возможности обработки XML добавлением новых расширений SimpleXML, XMLReader иXMLWriter.
Есть еще многих иных расширений, которые можно просмотреть как в алфавитном порядке, так и по категориям. Есть еще много дополнительных PECL расширений, которые также могут быть документированы в данном руководстве, такие как XDebug
Программы PHP могут выполняться двумя способами: как Web-приложение HTTP-сервером либо как консольные программы.
PHP, как правило, применяется лишь для программирования приложений, которые связаны с Интернетом. Однако PHP можно еще применять в качестве интерпретатора командной строки, в основном в *nix-системах. Последнее возможно при помощи CORBA и COM интерфейсов, а также при помощи расширения PHP-GTK.
При таком применении PHP возможно решение следующих задач:
– формирование приложений интерактивной командной строки.
– формирование кросс-платформенных GUI приложений посредством библиотек PHP-GTK, PHP-Qt или WinBinder.
– автоматизация отельных задач под Windows и Linux [19].
III) Разработка интернет-магазина.