Движок магазина
Задача написать облегченный движок магазина (он же фронт-сайт) для торговли цифровыми продуктами. Движок выполняет роль прокси. На входе xml, на выходе html реквесты от клиента передаются в чистом виде на базовый сервер.
Требования к движку
- контент отдается с базового сервера в виде xml
- дизайн/шаблон магазина лежит рядом с движком
- картинки товаров лежат на неком третьем сервере
- необходимо преобразовать xml в html использую текущий шаблон
- отображение html должно быть корректным в IE6, IE7, Opera, Firefox
- движок должен работать на стандартном шаредхостинге
- язык реализации исходя из предыдущего пункта получается php, per (можете предложить другой, если знаете)
- нужна поддержка сессий на базовом сервере(через куки)
- потребуется преобразование куки, выставляемой сервером, для клиента
Базовый сервер на данный момент готов, но вероятно понадобится некоторая доработка под облегченный движок.
Счас сервер отдает xml+xslt, которые браузеры умеет преобразовывать самостоятельно в html. Нужно этот самый xml преобразовать в html согласно шаблону. XSLT преобразовывать не нужно. Фронт-сайт должен иметь связь с базовым сервером.
Тип шаблонов - smarty подойдет поскольку популярен он в народе (хоть и не люблю я его). Меня лично
устраивает в качестве обычный пхп, на вход которому дается некий массив данных, без всякой интерпретации внутри пхп. Язык шаблона внутри получается обычный пхп, но без каких-либо наворотов дополнительных обработок, внутри шаблона все по минимуму только форматированный вывод данных. Smarty на мой взгляд сильно избыточен, хотя в нем много привлекательного.
Диалог между фронт-сайтом и базовым сервером выглядит примерно так:
- базовый сервер при авторизации выдает cookies, фронт-сайт передает эту куку браузеру
- фронт-сайт отдает cookies полученную от браузера базовому серверу
- на основе это cookie базовый сервер и определяет авторизован пользователь или нет
Процесс покупки реализуется базовым сервером, фронт-сайт должен только отобразить соответствующие страницы.
Фронт-сайту в принципе не нужна база данных. Будет полезен механизм кеширования некоторых данных, в целях сокращния обмена между фронтом и сервером.