@symfony_php

Страница 25 из 1418
Aleh
15.12.2016
12:19:23
Важен размер твоих бизнес-транзакций

Если все просто, то можно отойти и прямо вот в репозитории сейвать

Можно вообще в модель dao передавать

Sergey
15.12.2016
12:21:15
в джаве в принципе много раз видел что метод помечают как Transactional и внутри делают сейвы по разным репосам если их нужно несколько

Google
Sergey
15.12.2016
12:21:31
ну либо юзают напрямую сессию, но только для транзакции

Aleh
15.12.2016
12:24:40
Ну, консистентность сложнее поддерживать кмк

Но я ещё ко всему и слабо понимаю смысл

А save может ещё и сущности дергают?))

Sergey
15.12.2016
12:26:37
не чисто persist($entity) & flush($entity)

Aleh
15.12.2016
12:27:24
Так зачем?

Sergey
15.12.2016
12:30:23
вот даже у core разрабов симфони спрашиваю >I don’t see anything wrong in having these methods on a repository, but i prefer to use domain-specific names >Users::register(User $user)

Aleh
15.12.2016
12:30:46
Add/remove норм

Здесь add

А где update?

Sergey
15.12.2016
12:31:27
update такого понятия нет если это managed entity

там только flush нужен

Aleh
15.12.2016
12:31:57
Ну

Google
Aleh
15.12.2016
12:32:07
Так зачем что-то делать, если можно не делать?)

Sergey
15.12.2016
12:39:33
чтобы не тащить зависимость em

Aleh
15.12.2016
12:39:45
Sergey
15.12.2016
12:39:47
удобно ж

Aleh
15.12.2016
12:39:52
Не очень

Sergey
15.12.2016
12:40:01
ну у тебя есть UserRepository

Aleh
15.12.2016
12:40:04
А куда ты тащишь em

Sergey
15.12.2016
12:40:12
ты сделал скажем find, потом чет наколбасил и тут же сделал save

Aleh
15.12.2016
12:40:26
А надо было ещё чего-то

Продукта там счётчик обновить

Sergey
15.12.2016
12:40:40
ну репос то юзера

нах еще что-то)

Aleh
15.12.2016
12:40:54
Ну потому что действие бизнес затронуло

Несколько вещей)

Sergey
15.12.2016
12:41:08
тогда уже нужен em и транзакция

Aleh
15.12.2016
12:41:08
В итоге у меня состояние невалидное

Sergey
15.12.2016
12:41:18
а я говорю за элеметарные атомарные апдейты

Aleh
15.12.2016
12:41:28
Я не хочу думать как там сущности трогали друг друга

Я хочу в контроллере флаш

Google
Aleh
15.12.2016
12:41:38
Если не было эксепшенов

Если это была команда

А не query

Sergey
15.12.2016
12:41:59
Я хочу в контроллере флаш
если б это всегда все так просто было

Aleh
15.12.2016
12:42:10
Так а что не так?

Я же и прошу кейс :)

Sergey
15.12.2016
12:42:38
у меня был кейс когда нужно фактически в самом начале сохранить сущность, чтобы получить айдиху и дальше ее использовать в логике

и только потом сохранять все остальное

Aleh
15.12.2016
12:43:28
Зачем??

1. Uuid 2. Doctrine сама умеет подставлять

Sergey
15.12.2016
12:44:09
а без uuid?

Aleh
15.12.2016
12:44:28
2

Sergey
15.12.2016
12:44:58
чтобы подставить инкремент нужно знать предыдущий счетчик

или ты о чем?

Aleh
15.12.2016
12:45:14
Ну, зачем тебе чей-то I'd?

Id

Sergey
15.12.2016
12:45:41
вот нужен был, деталей не вспомню) куда-то он отправлялся на другой сервис

Aleh
15.12.2016
12:46:10
Так это ивент хандлер

Типа зарегил и нового юзера

После разослали имейлв

Google
Aleh
15.12.2016
12:46:26
И прочую шнягу

Sergey
15.12.2016
12:46:51
и?

Aleh
15.12.2016
12:47:04
Ну

Сделали в контроллере флаш

И стартанули ивенты или на пост флаше обработчик дернул нужные сервисы нотификации

Но там уже с сущностями ничего не происходит

Только данные считываем

Может даже не из сущностей, а из dto

Или read model

В конце концов ты можешь запустить две или n бизнес транзакции, после каждой делая флуш

Но это ооочень специфичный кейс был бы

В любом случае флаш в контроллере

Sergey
15.12.2016
12:49:56
я не сторонник флаша в контроллере

Aleh
15.12.2016
12:50:17
Ну так явно контроллер запускает две бизнес транзакции

Sergey
15.12.2016
12:50:25
с роллбеками и логикой контроллер тоже занимается?

Aleh
15.12.2016
12:50:26
На каждую флашит(или нет)

Sergey
15.12.2016
12:50:58
ну скажем если что-то пошло не так, при роллбеке нужно еще какую-то логику выполнять

Aleh
15.12.2016
12:51:02
Преобразования и валидации? Он дергает да

Google
Sergey
15.12.2016
12:51:14
а контроллер и логика как бы не очень совместимые понятия

Aleh
15.12.2016
12:51:50
Они могут быть на успех и на феил свои

Или ты хочешь другую транзакцию запускать?

Sergey
15.12.2016
13:13:02
Александр а ты шо тут забыл?)

Aleksandr
15.12.2016
13:13:11
Пришел мысли умные читать

Aleh
15.12.2016
13:13:26
разные транзакции
разные транзакции в одной бизнес операции параллельно?

Aleksandr
15.12.2016
13:13:26
Старших товарищей слушать

Sergey
15.12.2016
13:13:26
например создать юзера, и добавить к его карту продукты

Aleh
15.12.2016
13:13:28
зачем?

например создать юзера, и добавить к его карту продукты
ты ну норм, из контроллера два каких-то сервиса дергаются, а между ними флуши

или хз, может тут один флуш вообще нужен?

там надо смотреть как че

Алексей
15.12.2016
16:39:08
Посоветуйте какой-нибудь бандл, который позволяет большое количество данных фикстурами загонять? В идеале, чтобы им можно было уже из существующей БД экспортировать записи для последующего использования в фикстурах.

Mikhail
15.12.2016
16:40:09
DoctrineFixturesBundle смотрел?

http://symfony.com/doc/current/bundles/DoctrineFixturesBundle/index.html

Алексей
15.12.2016
16:40:19
Да, конечно. Но он не об этом.

К нему можно прикрутить, конечно, импорт из JSON/XML или ещё чего угодно, что придумаешь, но вероятно же эту задачу кто-то уже решал много раз.

Страница 25 из 1418