P747, спасибо большое)
Суть плагина в том чтобы на входе получать CSV файл. В CSV файле расположены варианты товаров которые нужно изменить. Приведу одну строку в пример: КатегорияАргумент1Аргумент2Аргумент3Цена
Итак, класс считывает все эти данные и отправляет уникальные значения в базу данных, получает все товары. После этого проходит по каждому товару и сверяет есть ли у какого-либо товара 3 атрибута из одной строки. Если есть меняется цена. В принципе вот и все. Это единственное что делает плагин. Просто, как подметили выше, плагин обрабатывает товары довольно медленно. 10-15 товаров в секунду. Я подменил preg_match() на strpos(), но проблема также не решилась. Немного оптимизировал код, удалил лишние переменные, операции и 1 метод. Но класс все равно не увеличил свою скорость.
P747, спасибо что объяснили тему очередей. Пожалуйста напишите хотя бы 3 ошибки моего класса. Мне нужно знать в чем улучшаться, тем более как вы сказали они грубые. Буду вам очень благодарен)
P747, я еще очереди не проходил к сожалению)
Как я понял из php.net очередь доводит с начала до конца 1 товар(в данном случае) а потом начинает запускать 2-ой и так далее. Очередь мне напоминает генератор, но в более крупном масштабе. Генератор работает в пределах своего кода, и сразу как получает ответ передает его дальше не соединяя все ответы. Очередь же работает в довольно большом фрагменте кода. Интересная методика, но к сожалению, у меня нет опыта в ней, и я еще не дошел до уровня очередей. Но за совет очень благодарен)
Вы могли бы сказать есть ли ошибки в этом классе? Может следует использовать другую функцию где-то? Может я не логично использую ООП? Был бы вам очень благодарен за любую критику.
Капитан Какао, так если из 1 переменной текст выходит, то можно или на стороне сервера или на стороне клиента разбить строку и одну часть поставить в первый блок а вторую часть во второй)
Stalker_RED, вы верно заметили. Все так, но SQL-запрос я не мог сделать так как вариативные товары скрывают свои данные в сериализованом массиве. А от туда через SQL я достать их не смог. Возможно я усложняю... https://github.com/Edgardo-developer/Plugin/blob/m...
Daria Motorina, Дарья, я посмотрел как можно улучшить код и улучшил, но меня все равно не покидает ощущение, что есть ошибки, потому что скорость существенно не увеличилась. Если я пришлю вам ссылку на код, вы смогли бы просмотреть и оценить мой код?
Буду вам очень благодарен, если это возможно.
Написал с помощью ООП и комментарии есть у каждого метода.
Daria Motorina, Дарья, слово "оптимизация" открыло мне глаза. Сейчас начал читать на тему оптимизация PHP кода и нашел много нового для себя. Очень вам благодарен.
alexalexes, очень вам благодарен. В принципе вы дали мне то, за чем я и пришел на форум. Пожалуйста напишите тоже самое в ответах(про логи). Я отмечу ваш ответ решением)
Суть плагина в том чтобы на входе получать CSV файл. В CSV файле расположены варианты товаров которые нужно изменить. Приведу одну строку в пример:
Категория Аргумент1 Аргумент2 Аргумент3 Цена
Итак, класс считывает все эти данные и отправляет уникальные значения в базу данных, получает все товары. После этого проходит по каждому товару и сверяет есть ли у какого-либо товара 3 атрибута из одной строки. Если есть меняется цена. В принципе вот и все. Это единственное что делает плагин. Просто, как подметили выше, плагин обрабатывает товары довольно медленно. 10-15 товаров в секунду. Я подменил preg_match() на strpos(), но проблема также не решилась. Немного оптимизировал код, удалил лишние переменные, операции и 1 метод. Но класс все равно не увеличил свою скорость.