Size: a a a

2021 February 03

SP

Sergey Protko in symfony
AlexS
Я бы с удовольствием, но это не вариант(
Мускуль ?
источник

SP

Sergey Protko in symfony
А почему не вариант?
источник

A

AlexS in symfony
Sergey Protko
А почему не вариант?
Да, я написал же в вопросе - mysql, автоинкремент
Не вариант потому что есть ещё несколько работающих проектов, которые из той же базы читают, а переделывать свои проекты ради моих ивентов никто не согласится
источник

SP

Sergey Protko in symfony
Могу только сказать что идея "передавать обьект что бы по ссылке его менять и получать доступ к айдишек" попахивает вредными советами
источник

КГ

Константин Грачев... in symfony
Sergey Protko
Да, лучше uuidv4
почему именно 4?
источник

КГ

Константин Грачев... in symfony
Sergey Protko
Или v6 если не страшно
а всё, вопросов нет)
источник

VM

Volodymyr Melko in symfony
AlexS
у меня вопрос не совсем по симфони, но рискну) вчера я задавал его в соседнем чате но там как-то всё скатилось в срач "автоинкремент против uuid", что никак не прояснило сути вопроса)

собсно сабж: а подскажите, как правильно разруливать получение айдишки для доменных событий?

сейчас все события у меня из сущностей вытягиваются в отдельном слушателе доктриновских событий на postFlush

по идее, в объекте может поменяться что угодно, потому в доменное событие передаётся единственная стабильная штука - это айдишник (база mysql, айдишник - автоинкрементный). но некоторые события могут произойти еще до того, как у сущности появилась айдишка. как правильнее? передавать весь объект в событие, а айдишка будет востребована после того, как сущность сохранилась? но вся сущность в событии не особо-то и нужна. или же передавать в событие какое-то замыкание из которого можно будет получить id? или еще какие-то варианты? я сам склоняюсь к тому, чтоб передавать сущность, но может есть какие-то более клёвые варианты? менять базу и делать айдишки uuid - не предлагать)

или может можно на этом этапе смотреть есть ли у события какой-то признак и обновлять id сущности внутри события. но тут получается, что либо события будут мутабельные что не ок, либо нужно будет генерировать новое событие, с корректным id взамен старого, что тоже выглядит странновато

какой самый правильный подход?
спасибо за ответы)
заведи себе генератор интовых айдишек и с него доставай перед флашем, если надо
источник

КГ

Константин Грачев... in symfony
Sergey Protko
Или v6 если не страшно
Хотя есть, почему должно быть страшно?
источник

A

AlexS in symfony
Sergey Protko
Могу только сказать что идея "передавать обьект что бы по ссылке его менять и получать доступ к айдишек" попахивает вредными советами
ну мне тоже не особо нравится передавать весь объект, чтоб получить только айдишку, но как по другому и чтоб не костыльно - пока не особо понимаю
источник

КГ

Константин Грачев... in symfony
AlexS
ну мне тоже не особо нравится передавать весь объект, чтоб получить только айдишку, но как по другому и чтоб не костыльно - пока не особо понимаю
uuid это круто, один раз попробовав назад не хочется
источник

A

AlexS in symfony
Константин Грачев
uuid это круто, один раз попробовав назад не хочется
да я понимаю, что это круто)
но менять тип идентификатора не разрешат
источник

КГ

Константин Грачев... in symfony
AlexS
да я понимаю, что это круто)
но менять тип идентификатора не разрешат
беги от туда
источник

A

AlexS in symfony
Константин Грачев
беги от туда
почему?
источник

КГ

Константин Грачев... in symfony
Потому что не дают делать нормально, нафига такая работа?)
источник

A

AlexS in symfony
Константин Грачев
Потому что не дают делать нормально, нафига такая работа?)
делать новое нормально - разрешают) но я там выше писал - есть еще несколько проектов, которые уже несколько лет читают из этой же таблицы/базы.
и если апдейтнуть таблицу, то это надо согласовать со всеми проектами, а если они просто читают - то нафига им эти пляски?) никто не согласится переделывать то, что уже работает и в принципе их можно понять)
источник

КГ

Константин Грачев... in symfony
AlexS
делать новое нормально - разрешают) но я там выше писал - есть еще несколько проектов, которые уже несколько лет читают из этой же таблицы/базы.
и если апдейтнуть таблицу, то это надо согласовать со всеми проектами, а если они просто читают - то нафига им эти пляски?) никто не согласится переделывать то, что уже работает и в принципе их можно понять)
добавь uuid не убирая автоинкремент
источник

A

AlexS in symfony
Константин Грачев
добавь uuid не убирая автоинкремент
хм 🤔
источник

SB

Sergei Baikin in symfony
AlexS
у меня вопрос не совсем по симфони, но рискну) вчера я задавал его в соседнем чате но там как-то всё скатилось в срач "автоинкремент против uuid", что никак не прояснило сути вопроса)

собсно сабж: а подскажите, как правильно разруливать получение айдишки для доменных событий?

сейчас все события у меня из сущностей вытягиваются в отдельном слушателе доктриновских событий на postFlush

по идее, в объекте может поменяться что угодно, потому в доменное событие передаётся единственная стабильная штука - это айдишник (база mysql, айдишник - автоинкрементный). но некоторые события могут произойти еще до того, как у сущности появилась айдишка. как правильнее? передавать весь объект в событие, а айдишка будет востребована после того, как сущность сохранилась? но вся сущность в событии не особо-то и нужна. или же передавать в событие какое-то замыкание из которого можно будет получить id? или еще какие-то варианты? я сам склоняюсь к тому, чтоб передавать сущность, но может есть какие-то более клёвые варианты? менять базу и делать айдишки uuid - не предлагать)

или может можно на этом этапе смотреть есть ли у события какой-то признак и обновлять id сущности внутри события. но тут получается, что либо события будут мутабельные что не ок, либо нужно будет генерировать новое событие, с корректным id взамен старого, что тоже выглядит странновато

какой самый правильный подход?
спасибо за ответы)
У меня нет автоинкрементов но будет и с ними работать.
Событие содержит то что помнялось. Айдишник соотвенственно не менялся ну и нефин ему делать в событии.
В месадж бас же уходит DomainMessage котрый уже как врапер заворчаивает внутрь событие и знает откуда он был вытащен.

Примерно так
https://github.com/broadway/broadway/blob/master/src/Broadway/Domain/DomainMessage.php

Тоесть вы сохраняете сущность а потом достаете события упаковыаете из выплевываете во вне.

Если хочется через наследование решать тогда могу тоько bind или Reflection посоветовать
источник

SP

Sergey Protko in symfony
AlexS
да я понимаю, что это круто)
но менять тип идентификатора не разрешат
так не надо менять... добавь рядом)
источник

SP

Sergey Protko in symfony
обратная совместимость сохраняется
источник