Просмотр поста

.
AlkatraZ
╭∩╮ (`-`) ╭∩╮
# L!MP (14.02.2017 / 23:49)
Теперь я хочу понять, зачем здесь может быть нужен UoW?
Есть ли какие-то однозначные полезности, ради которых стоит вот эти моменты переписать на UoW.
Конечно может я не так понял твою задачу, но выскажу мнение...
===
Ну если следовать логике, то по своей сути UnitOfWork это аналог транзакционной модели.
Иными словами, ты можешь выполнять серию каких-то взаимосвязанных действий с данными.
Эти действия верны только вместе и они должны быть полностью завершены, или же отменены.
Транзакция в UnitOfWork завершается (сохраняются данные) только после коменды ->commit()
В этом и суть.
Происходит некое "накопление" данных.
Если по завершении работы скрипта не поступило команды ->commit() то транзакция считается незавершенной и будет произведен откат.

В MySQL транзакции возможны только в InnoDB, там без комита данные вообще не попадают в основную таблицу а хранятся в ЛОГ файлах. Если комита не последовало, то данные потом очищаются (физически никакого роллбэка нет, просто данные не добавятся).
===
Применять, или нет UnitOfWork зависит от ситуации.
В большинстве случаев транзакции не нужны. Но в некоторых случаях (к примеру принимаешь большой объем данных и медленно, или особо ответственный случай) может понадобиться.

Хорошая статья тут: http://blog.byndyu.ru/2010/07/ ... .html