Пишу класс для актуализации товара магазина joomshopping.
В ООП не силён.
Поэтому сделал класс для подключения к базе, класс для обработки изображений и класс где собственно и происходит актуализация.
Вот его схема
1. функция function __construct, где вызываем родительскую функцию подключения к БД.
2. функция function _loadCSV($flnamecsv), где:
2.1. создаём таблицу $priceTable для импорта данных из прайса
2.2. парсим csv в ранее созданную таблицу $priceTable
2.3. получаем массив $results с теми записями из $priceTable, которых ещё нет в магазине
2.4. вставляем новые записи из $priceTable в магазин
2.5. снимаем с публикации те записи, которых нет в $priceTable
2.6. публикуем новые записи и обновляем цену у всех товаров
2.7. вставляем имена файлов изображений в соответствующую таблицу
2.8. подготавливаем все необходимые в дальнейшей работе запросы
2.8.1 выборка категории с заданными наименованиями и родительской категорией
2.8.2 определяем максимальный order для конкретной родительской категории
2.8.3 определяем id для соответствующего кода товара
2.8.4 вставляем в таблицу с категориями запись с заданными именами файла изображения, родительского id, очередного order, наименованием категории
2.8.5 в таблицу соотношения товара и категории делаем соответствующую запись
2.8.6 определяем id производителя
2.8.7 определяем максимальный order для производителя
2.8.8 вставляем в таблицу с производителями запись с соответствющими наименованием и очередным order
2.8.9 меняем в таблице с товаром id производителя на определённый в запросах ранее
2.9. для каждого элемента массива $results делаем цикл, в котором в перечисленные ранее запросы передаём параметры и выполняем соответствующие операции, а также загружаем файл изображения, делаем для него превьюшку и средних размеров изображение. Для этого вызываем функцию _downloadImage
3. функция _downloadImage($sourceName, $targetName, $quality, $width, $height)
Эта функция работает с классом обработки изображения
4. функция buildReport()
Она вызывает функцию function _loadCSV($flnamecsv) и пишет в итоге, что операция завершена.
-------------------------------- -------------------------------
Очевидно, что функцию function _loadCSV($flnamecsv), наверное, надо разбить на несколько отдельных функций, тексты запросов или даже подготовленные запросы вынести в отдельный класс? Операцию по выполнению всех этих запросов вынести в отдельную функцию? Тогда в новой функции опять заново присваивать имена таблиц БД переменным? Подскажите как сделать красиво.
(Отредактировано автором: 02 Декабря, 2014 - 18:02:06)