Nikolay
картинки например, может мне логику добавления фото со всеми превью, алиасами и прочими через sql писать?
Gaius Cassius
Я про это и говорю. Коля говорит, что сложно всю логику
ну хз. мне проще прямые запросы впихнуть, чем через объекты и модели pdo
Nikolay
как это сделать на чистом sql без гемора?
Nikolay
сгенерить алиасы товарам?
Nikolay
это только первое что в голову пришло
Nikolay
ага, они самые
Sergey_K
а в чем проблема?
Nikolay
там не только в базе данные, но ещё и сами картинки, и папки к ним
Nikolay
а то что мне надо логику кучи вещей переписать))
Sergey_K
импортируй все, генери пути, а ПОТОМ генери по путям тамбнейлы
Sergey_K
в чем проблема?
Nikolay
да ну, заняться что ли больше нечем))
Sergey_K
Никакой логики переписывать не надо
Sergey_K
У меня триггерами обновляется сумма заказа
Sergey_K
Потому что штатный процессор запускать это хз что. А само оно не обновляется.
Nikolay
как не надо, мне надо написать то же что описано в куче процессоров, только читыми запросами, всё это отладить, чтобы нигде не накосячить...
Sergey_K
Ты либо не владеешь sql либо одно из двух, уж прости. Но это все пишется намного быстрее, чем ковырять то же самое в модх
Sergey_K
Как там накосячить - хз.
Nikolay
а ты не владеешь modx) потому что на процессорах по любому быстрее
Nikolay
sql да не очень
Nikolay
но всё временно
Sergey_K
Прости, но процессор крутит все свое, а потом вызывает еще и коряво, sql
Gaius Cassius
а ты не владеешь modx) потому что на процессорах по любому быстрее
может и быстрее, но проще написать 1 запрос, чем раз в год вспоминать, как все правильно связать в том же pdo
Sergey_K
еще и не в одной транзакции
Nikolay
сорри но не понимаю в чем сложности процессоров, там всё готово, указываешь несколько параметров, и всё само делается в базе
Nikolay
запросы городить, это пипец сколько писанины, не напутать ещё
Sergey_K
любопытно посмотреть
Gaius Cassius
или update Ф+И+О в одну колонку?
Sergey_K
Тут часто городят циклы
Nikolay
давай возьмем банальный пример insert update на pdo сходу напишешь?
http://dl3.joxi.net/drive/2019/12/03/0013/3235/867491/91/7dfc2efbb4.jpg это update из таблицы extjs, оттуда прилетает id чего обновляем, а в процессоре я лишь указываю класс, дальше всё само и так на каждый чих практически
Nikolay
процессор можно запустить хоть из сниппета
Gaius Cassius
т.е. конечный вариант
Nikolay
да там плюс минут тоже самое
Sergey_K
процессор можно запустить хоть из сниппета
процессор покажи, апдейта суммы заказа при изменении цены в строке.
Gaius Cassius
процессор - это дофига кода прослойки, когда на том же sql можно сделать точно так же и с меньшим кодом. + в поддержке проще
Nikolay
процессор покажи, апдейта суммы заказа при изменении цены в строке.
я не писал такого) но вот тот что я скинул, там же и дописать типа $modx->getObject('msOrder', 5);
Nikolay
$order->set();
Gaius Cassius
я не писал такого) но вот тот что я скинул, там же и дописать типа $modx->getObject('msOrder', 5);
а вот когда напишешь, поймешь, что напрямую с базой работать проще
Sergey_K
Ну ты в теме, что каждый твой getObject() это как минимум один запрос в БД и херова туча памяти?
Sergey_K
BEGIN if (new.cost <> old.cost) then select sum(cost) into @cart_cost from ms2_order_products where order_id = new.order_id; update ms2_orders set cart_cost = @cart_cost, cost = @cart_cost + delivery_cost where id = new.order_id; end if; END
Sergey_K
Вот полный код апдейта
Sergey_K
Весь.
Sergey_K
100%. 9 строк
Gaius Cassius
и простых и понятных
Nikolay
ну у меня копипаст процессора, кочует из кода в код, логики там пару строк)
Sergey_K
Логики пара строк?
Nikolay
а тут целый 10 нужно напрячь мозг
Sergey_K
Листинг метожа getObject() покажи
Sergey_K
Там тоже 2 строки?
Gaius Cassius
Листинг метожа getObject() покажи
он считает только строки которые сам написал копипаст не учитывается
Sergey_K
Ну в общем, да :)
Sergey_K
Как и кол-во запросов
Nikolay
$order = $modx->getObject('msOrder', 5); $order->set('price', 500); $oder->save(); это чисто навскидку
Sergey_K
Чувак
Gaius Cassius
просто explain не смотрел, по процессорам
Nikolay
по крайней мере я не напрягаюсь)
Gaius Cassius
$order = $modx->getObject('msOrder', 5); $order->set('price', 500); $oder->save(); это чисто навскидку
тебе ж тут рассказывают, что эти 3 строки вызывают запросов уеву тучу вместе с кодом
Gaius Cassius
даже банальный exec в 2 строки будет быстрее
Nikolay
тебе ж тут рассказывают, что эти 3 строки вызывают запросов уеву тучу вместе с кодом
так я не спорю, пусть вызывают, речь про то, что для большинства случаев так тупо удобнее, чем каждый раз напрягать мозг
Gaius Cassius
ну извини, тут без напряга мозга никак. Ну или на вп темы ставить
Nikolay
лично я в первую очередь экономлю ресурсы моего процессора в голове, он у меня к сожалению одноядерный))
Sergey_K
Епта
Sergey_K
Простой пример
Sergey_K
<?php $res[] = memory_get_usage(); $order = $modx->getObject("msOrder", 2242); $res[] = memory_get_usage(); var_dump($res);
Sergey_K
array(2) { [0]=> int(6251432) [1]=> int(6257944) }
Павел
Отказаться от ORM - нельзя, ровно как и обойтись исключительно им
Павел
о чем вы вообще спорите
Павел
и зачем
Nikolay
люди просто modx не знают, но знают sql)
Sergey_K
Ну Коля топит на предмет того, что запросы в базу это слишком сложно
Gaius Cassius
никто не спорит. просто говорим, что чистый скуль тоже неплохо знать, для решения определенных задач
Sergey_K
SQL надо значть, чтобы понимать, КАК это работает
Nikolay
да я им пользуюсь почему нет, но не вижу смысла для простых операций городить запросы
Sergey_K
А не по-обезьяньи копипастить
Nikolay
копипаст спасёт мир)