Переписать проект с kohana на yii2

Цена договорная • наличный расчёт, безналичный расчёт, электронные деньги
18 апреля 2017, 22:55 • 6 откликов • 37 просмотров
Есть проект -- сбор данных о товарах из xml и отображение их в виде каталога (одежда).
http://msk-moda.ru
Краткое описание:

Для каждой сущности есть модель, контроллер для посетителей и контроллер для админки
1. Категории
2. Модели
3. Продукты
4. Поставщик (supplier)
5. Производители (vendor)
6. Характеристики и их значения (feature_values)
7. Страницы (типа о нас, Будь в тренде итп)
8. Подготовленные запросы, типа "белые босоножки", "стильные туфли" итп


Отдельным куском будет выборка необходимых фильтров для данной страницы(категории, вендора, подготовленного запроса), выборка товаров по категории.
Плюс само фильтрование списка моделей на основе выбранных фильтров
Также используется встроенный модуль работы с пользователями и ролями.

По таскам (application/classes/Task)
- ImportProducts - основной таск, который разбирает очередь фидов от поставщиков на загрузку, загружает и разбирает в каталог. Когда очередь разобрана он перестраивает кешированные данные (агрегации счетчиков и пр - тоже что в таске Recalculate) + потом следом запускает таск CatalogCache. Запускается по крону ночью с 01 до 06, или руками при необходимости.
- CatalogCache - создает агрегированный кеш актуальных предложений по моделям в MongoDB. MongoDB используется как "быстрый" кеш для формирования страниц каталога (front-office контроллеры марки, категории и распродаж + разные виджеты с выборками по моделям а-ля "похожие товары"). Запускается из ImportProducts или руками при необходимости.
- Recalculate - чистит и перестраивает кеш (агрегации счетчиков и пр). Запускается вручную при необходимости
- GenerateFeed - генерирует выгрузку агрегированного каталога в XML по спецификации Яндекса (YML) в стандартный вывод. Сейчас автоматом не запускается.
- GenerateSitemap - генерирует карту сайта sitemap.xml в соответствии со спецификацией (многофайловая если каталог большой). Запускается кроном ночью 3-4 раза в неделю
- ImageCache - запускает процесс кеширования картинок с сайтов поставщиков на наши сервера. Процесс кеширования дергает внешний веб-сервис _add.php (исходники тут data/tools/imgcdn, лежит на другом сервере где есть большие диски для хранения всех картинок, а-ля CDN + там же есть ресайзер картинок чтобы делать превью) с урлом картинки поставщика, в ответ получает урл картинки "своей" или код ошибки, которые сохраняет в БД и в случае успеха уже будет использоваться "своя" картинка
- LinkDuplicates производит базовое сравнение моделей на предмет выявления "клонов" и в случае обнаружения "склеивает" их под родителя (указывает parent_id). Запускается каждый день утром.
- ParseFilters - "пересобирает" фильтры, запускается вручную.
- ProcessRule - в системе есть Rules (Правила) настраиваемые в админке - условия извлечения параметров товара из его описания. Этот так запускает процесс извлечения. Пока нигде не запускается и не используется т.к. все обогащение данных производится внешними парсерами