Добрый день, подскажите пожалуйста, работая с Doctrine используя репозиторий и

persist, flush как то можно узнать что данные были измененены? Я делаю выборку из таблицы, потом в нескольких местах могу её менять или не менять. Чтобы в нескольких местах не ставить переменные и их инициализацию, может как то можно перед flush понять что изменения есть?

15 ответов

16 просмотров

https://www.doctrine-project.org/projects/doctrine-orm/en/2.15/reference/events.html#onflush

Dmitry- Автор вопроса

$em->getUnitOfWork()->size(); не подойдёт?

Dmitry
$em->getUnitOfWork()->size(); не подойдёт?

RTFM. The size of a Unit of Work mainly refers to the number of managed entities at a particular point in time.

что за переменные в нескольких местах и зачем знать поменялось ли что-то?

Dmitry- Автор вопроса
Шурик
что за переменные в нескольких местах и зачем знат...

надо мёрджить данные из базы и из стороннего сервиса раз в сутки. нужен нотификатор, что процесс отработал и данные смёрджились. чтобы избежать ситуации: вычитали данные из базы, а из сервиса вычитать не получилось. клиент думает что всё хорошо, а по факту в базе не верные данные. соответственно если мы понимаем что перед записью в базу у нас был набор измененных данных, значит как минимум сервис мы опросили, и данные смерджили.

Dmitry
надо мёрджить данные из базы и из стороннего серви...

а тот код, который опрашивает внешний сервис - он сам не может сообщать успешно ли мы опросили сервис или всё наебнулось?

Шурик
а тот код, который опрашивает внешний сервис - он ...

Судячи по опису, хочуть костиль, і використовувати diff з doctrine )

Dmitry
надо мёрджить данные из базы и из стороннего серви...

а если мы сервис опросили успешно, но так случилось, что ничего не изменилось - такое ж тоже по идее возможно? а если идти через UnitOfWork - будет выглядеть будто всё пропало

Вадим
Судячи по опису, хочуть костиль, і використовувати...

не, хотят понимать всё ли ок, но почему-то именно доктрина должна сообщать всё ли ок с внешним сервисом

Шурик
не, хотят понимать всё ли ок, но почему-то именно ...

Задача зрозуміла, але реалізація через uow костиль )

Вадим
Задача зрозуміла, але реалізація через uow костиль...

я бы не сказал костыль) это просто неверное решение))

Dmitry- Автор вопроса
Шурик
а тот код, который опрашивает внешний сервис - он ...

Может, но как написал выше - это в нескольких местах надо добавлять код. Хотел попроще - чекать доктрину перед flush, если возможно такое

Dmitry
Может, но как написал выше - это в нескольких мест...

делай как хочешь но как минимум два человека тебе сказали, что это хуёвое решение

Dmitry- Автор вопроса
Шурик
делай как хочешь но как минимум два человека тебе ...

Ок, спасибо, я поэтому и спрашиваю как лучше

Похожие вопросы

Обсуждают сегодня

Всем привет, Добавил в плагин определение user agent public function registerMarkupTags() { return [ 'filters' => [ 'staticPage' => ['RainLab\Pages\Cl...
John Norton Kruger
3
Я колись ставив гуглу антиспам 3.0, може і норм, але мені не дуже зайшло. Теж думав тиждень, що його і куди. Зупинився на трех варіантах відразу всі три і включив 1. Перевір...
𝓔𝓾𝓰𝓮𝓷𝓮𝓥 J
2
Кастомные эмодзи для ботов доступны только элите, верно?
山 | Bobby | 山
3
Всем привет, может кто знает нормальных иностранных хостинг провайдеров. Что бы по качеству аналогичные netangels, beget, timeweb?
Black Cat
4
Добрый день, а вы сталкивались с таким что на iphone (14) в backend-e oc2, promts не показываются с первого раза. Приходиться сафари свернуть и открыть что бы увидеть. Знаете ...
Max Dubovsky
1
Добрый день , слышали про то что XML схемы https://schemas.xmlsoap.org/soap/envelope/ перестали работать со поза-вчера. А домен https://schemas.xmlsoap.org/ , отвечает 404 оши...
Max Dubovsky
3
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Второй вопрос: снимаются ли эти ограничения при покупке на fragment хрени за кучу денег? (до 4096 / 2048)
Артем Уколов
3
где собака, админ группы? нычкуется и боится проявить волю, в толерантность еще не наигрался? @yelizariev
Ognezar
61
Портфолио: Зовут меня Александр, мне 41 год. Город Киров. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github.co...
Magic
11
Карта сайта