netspike
))
artem
Смотря что нужно знать. Есть знакомые
Андрей
Юра
Да
Dmitriy
Всем привет! Вопрос по архитектуре, у меня есть такой процесс:
контроллер получает данные через api и передает их в продюсер -> продюсер отправляет данные в топик реббита. Если мне потребуется заменить rabbit, например на кафку, как оптимальным образом выстроить структуру приложения так, чтобы при таких изменениях мне не нужно было переписывать продюсера? Насколько я знаю, в java для подобной цели используют дженерики, у нас есть что-то подобное?
Юра
Может это?
Юра
https://symfony.com/doc/current/messenger.html
Egor
Или https://github.com/php-enqueue/enqueue-bundle
Dmitriy
A.D.🈴
Простой вопрос по релейшнс. Создал энтити юзер. У юзера может быть много айтемов. И у айтема может быть много юзеров. Но у айтема есть параметр уровень, который может быть разный у разных юзеров. Это мени-ту-мени? Или как?
Юра
Это мэни ту мэни через доп энтити
Юра
Т.е. доп энтити с двумя ван ту мэни на твои энтити
Юра
Т.е. создаёшь энтити UseHasItem с тремя полями, user, item, level
A.D.🈴
То есть по сути, не мэни-ту-мэни, все-таки? С релейшнами вообще дел не имел раньше. Получается, юзер у меня создан, создаю айтем. И потом уже при создании ЮзерХезАйтем в полях юзер и айтем указываю релейшн... ван-ту-ван, нет?
Daria
Юра
Да это не мени ту мени а два ван ту мени
Юра
Тебе же надо по сути доп поле в таблице которая соединяет твои энтити
Юра
Это можно сделать тремя энтити как я выше написал
Юра
У юзера не будет напрямую ссылки на айтемы, а будет ссылка еа userhasitem в которой и будет поле level
Юра
Нг ты можешь добавить юзеру например метод getItems и передать туда параметр level и получить необходимые айтемы
Юра
Или наоборот смотря что тебе нужно
Maxim Kainov
Egor
Maxim Kainov
Тогда уж User, Item и UserItem
Тогда надо у айтема префикс какой то для названия таблицы делать, потому что айтемы могут быть не только у юзеров. Смотря конечно что там за айтемы )
A.D.🈴
A.D.🈴
Есть таблица дефолтных айтемов.
A.D.🈴
Когда он к юзеру попадает - у него либо дефолтный левел 1, либо там меняться уже может.
A.D.🈴
Как бы хранения айтемов нет, они просто как... атрибут юзера. :)
Daria
A.D.🈴
А, ок. Если слово gadjet будет? :)
A.D.🈴
Чтобы не встречалось.
Maxim Kainov
В принципе, делай как угодно, потом переделаешь если че )
Maxim Kainov
Я бы гаджет в неймспейс юзера поместил, и кастомное название таблицы сделал user_gadjet
Maxim Kainov
App\Entity\User\Gadjet\Gadjet и App\Entity\User\Gadjet\UserGadjet
Maxim Kainov
и таблицы соответственно user_gadjet и user_user_gadjet
A.D.🈴
Там проект небольшой. Мне как-то user_user_gadjet не очень. :) Можно has gadjet? :)
Maxim Kainov
Да все равно )
A.D.🈴
Так, тогда связь, все же, ван-ту-ван из UserHasGadjet на поля user и gadjet?
Maxim Kainov
Maxim Kainov
и мэни ту ван
A.D.🈴
У юзера свой гаджет, получается, в ЮзерГаджет должны быть все гаджеты. Это разве не ван-ту-ван? А вот ЮзерГаджет - Гаджет связка через ван (Гаджет) ту мэни (ЮзерГаджет).
Maxim Kainov
A.D.🈴
A.D.🈴
А, блин. Ван-ту-ван - это значит из одной таблицы ОДИН и из другой таблицы ОДИН?
A.D.🈴
Как-то в raw mysql это немножко понятнее. :)
Maxim Kainov
Daria
Привет!
Подскажите пожалуйста, можно ли заново сгенерировать symfony.lock на основе файла composer.lock? Случился рассинхрон по комитам, не могу теперь symfony.lock проапдейтить - если заново делаю composer update, то пакеты даунгрейдятся до symfony.lock, а не наоборот (symfony.lock обновляется согласно апдейту)
Egor
symfony.lock обновляется в момент установки пакета, при обновлении пакета он не обновляется, поэтому восстановить нельзя. Но что значит рассинхрон?
Egor
Пакеты не могут даунгрейдится до symfony.lock, композер вообще туда не смотрит, только флекс
Egor
Ну и ладно, он установил последние версии рецептов, а не те, что стояли
Egor
(Не факт что это разные версии)
Maxim Kainov
Maxim Kainov
Андрей
Anonymous
Привет! Впервые с таким столкнулся, ко мне в ветку попал чужой код, как теперь его убрать оттуда
Андрей
А как он туда попал?
Cherry-pick
Vite4eg
Ну если вмерживаешь master себе, то git притянет всё что влито в master. Это стандартное поведение
Anonymous
но на мой бранч никогда это не влияло
Vite4eg
Когда вмерживаешь себе какую-то ветку, не важно master это или нет master - это и есть процесс влияния на свою ветку ))
Vite4eg
Видать, чужой код и раньше приходил, только он был в других файлах, вы просто не пересекались
Anonymous
в том то и дело, мои файлы не затронуло, просто появились новые в моем бранче
Vite4eg
Ну это вполне себе нормлаьное поведение. Вам это мешает? Вы с какой целью master себе вливали?
Anonymous
чтобы на стагинаторе сбилдилась ветка, сейчас тим лид завернул мой код из-за этого
Vite4eg
А без master не билдится?
Anonymous
если было много изменений может упасть
Anonymous
хотя сбилдилось, на за чужой код по шапке получил )
Vite4eg
Я б попробовал на текущем месте создать ветку типа backup. Потом откатил бы свою ветку на предмержевое состояние. Потом попробоал бы сделать rebase на master.
Если всё прокатит - вы получите свой бранч, в котором все не ваши файлы в актуальном состоянии, но в вашей ветке только ваши правки
Vite4eg
Либо обратиться к тимлиду за помощью ))
Anonymous
а если всем левым файлам сделать rollback?
Vite4eg
Они в истории. rollback вам не поможет. Вы ещё и в историю запишете удаление файлов
Anonymous
блин, геморрой себе нажил )
Vite4eg
rebase попробуйте. Если создадите ветку backup как я советовал - то всегда сможете вернуться туда откуда начали