
Maksim
09.08.2018
07:45:48
эм, детализировать что?
ты хочешь реализовать паттер visitor с помощью DIC?
а как быть с тем, что контейнер уже скомпилирован? что данные о пользователе за зависимость не особо катят?
что именно ты хочешь услышать-то?)

Dmitry
09.08.2018
07:46:55

Maksim
09.08.2018
07:47:06

Dmitry
09.08.2018
07:47:27
Не пользователь, внутри будет билдер возвращающие VisitorInterface

Google

Maksim
09.08.2018
07:48:47
у этого интерфейса какие методы будут?

Dmitry
09.08.2018
07:49:00
Короч зря выдумываю грабли. Просто сейчас из DIC получаю VisitorBuilder и уже на уровне сервиса делаю detect() для получения пользователя. Вот подумал а не стоит ли это сделать в контейнере

Maksim
09.08.2018
07:49:34
ты просто слегка (нет) неверно описываешь что хочешь и что есть)

Dmitry
09.08.2018
07:49:59

Maksim
09.08.2018
07:50:11
а от чего этот билдер зависит?

Dmitry
09.08.2018
07:51:14
От реквеста, репозитория + всякие сторонние интерфейсы для детектирования ботов и т.п. На выходе получаю плоский Visitor объект типа DTO

Maksim
09.08.2018
07:53:24
ну опиши билдер в сервисе, скормив ему репозиторий в конструктор и опционально всякие мидлвары.
а уже в методе получения пользователя реквест передавай. Но эт не билдер, эт чёто более топорное

Dmitry
09.08.2018
07:56:11

Maksim
09.08.2018
07:56:54
сойдёт значит)

Dmitry
09.08.2018
10:19:33
Приятно удивлен, что не нашел пакетного обновления данных в MySQL. Вроде как только чрез INSERT INTO .... ON DUPLICATE KEY UPDATE ...

Sergey
09.08.2018
10:34:05
и да только через ON CONFLICT и прочие апсерты

Dmitry
09.08.2018
10:36:23
Да, есть юзкэйс, что на странице может быть 10 баннеров (не которые из них могут повторяться). Надо увеличить счетчик просмотров. А так, ясно, просто странно использовать для этого INSERT хоть и с постусловием

Google

Sergey
09.08.2018
10:52:59

Dmitry
09.08.2018
10:53:41
поэтому только через INSERT ... UPDATE

Sergey
09.08.2018
10:54:14
я бы писал это все тупо инсертами и потом разгребал лог.

Dmitry
09.08.2018
11:49:09
@fesor, ты писал что в контроллере не допускаешь if'ов. А валидация входящих данных (которыми видимо заполняются нужные DTO) где происходит?

Bohdan
09.08.2018
11:49:39

Dmitry
09.08.2018
11:50:27
Резолверы возвращаются исключения если что-то не так? Можно ссылочку почитать как это выглядит или ключевые слова для гуглинга
это https://symfony.com/doc/current/components/options_resolver.html ???

Bohdan
09.08.2018
11:54:22
не совсем
argument resolver
да, если что не так - бросают исключения, симфа потом ловит и отдает страничку с ошибкой

Vitaly
09.08.2018
11:55:12

Bohdan
09.08.2018
11:55:29

Vitaly
09.08.2018
11:56:02
У меня входящие дто валидирует обычный symfony validator, правила описываются в аннотациях dto

Dmitry
09.08.2018
11:56:28

Vitaly
09.08.2018
11:56:41
А сам механизм валидации в декораторе над шиной.

Dmitry
09.08.2018
11:56:42
точнее, фэйл в контроллере обрабоатываешь?

Vitaly
09.08.2018
11:56:54
Если фэйл, то массив с фэйлами будет не пустой

Dmitry
09.08.2018
11:58:03
Понятно, что не пустой. Где проверка на прохождение валидации или проверку пустоты массива ошибок производишь?

Google

Vitaly
09.08.2018
11:59:21
Там же в мидлваре
В декораторе тоесть

Dmitry
09.08.2018
11:59:47
понял, т.е. на уровне мидлвари ты отдаешь ответ с фэйлом и полями

Vitaly
09.08.2018
12:00:01
Ага

Dmitry
09.08.2018
12:00:43
А в symfony есть концепт мидлварей? Быстрый гуглинг дает костыльные решения. Может не там ищу..?

Bohdan
09.08.2018
12:01:47
нет, в симфони ивенты и листенеры

Alex
09.08.2018
12:32:04
#Вопрос если кто-то работал с базой текдок, подскажите запрос к базе, как по оригиналтному номеру найти аналоги в базе текдока

Сергей З.
09.08.2018
13:03:28

Vitaly
09.08.2018
13:06:46

Сергей З.
09.08.2018
13:08:11

Combot
09.08.2018
13:08:11
Сергей З. (0) увеличил репутацию Vitaly B (1)

Maksim
09.08.2018
13:21:07
если нет распределёнки, то от шины весьма сомнительная польза. Усложнение на ровном месте без видимого профита

Maksim
09.08.2018
13:21:40
ну и рспределёнка - уже не команд, а мессейдж

Vitaly
09.08.2018
13:25:52

Dmitriy
09.08.2018
13:26:13
Ну типа уменьшили связанность

Maksim
09.08.2018
13:26:36

Bohdan
09.08.2018
13:26:36
если у тебя все синхронно - тогда команд бас только делает немножко меньше связанность и множко больше головной боли

Dmitriy
09.08.2018
13:27:05
ну оно как бы всегда так
приходится платить головабобо

Google

Maksim
09.08.2018
13:27:28
команд бас никак не мешает бяки делать

Bohdan
09.08.2018
13:27:57
давай примеры, поудивляюсь)

Maksim
09.08.2018
13:28:36
public function handle(GetUserDataCommand $command) {
}
ня_)

Bohdan
09.08.2018
13:28:52

Dmitry
09.08.2018
13:29:16
Ну это же золушка - заглушка!!!!

Maksim
09.08.2018
13:30:03

Bohdan
09.08.2018
13:30:05

Dmitry
09.08.2018
13:30:27
э?
ничего не выполняющий хендл, а?

Admin
ERROR: S client not available

Bohdan
09.08.2018
13:30:35

Maksim
09.08.2018
13:30:49

Bohdan
09.08.2018
13:31:36
ну и на чтение бас не юзаю, канеш

Dmitry
09.08.2018
13:31:45

Bohdan
09.08.2018
13:31:57

Vitaly
09.08.2018
13:31:58

Bohdan
09.08.2018
13:32:09
я, кстати, в определенный момент тоже хотел возвращать результат команды
даже поддержку этого запилил, но вовремя одумался

Vitaly
09.08.2018
13:32:36

Google

Bohdan
09.08.2018
13:32:43
вроде tactician такое умеет
фактически он именно message bus - как и многие штуки от league, он довольно гибкий

Maksim
09.08.2018
13:33:22
public function getUserData(Command $command, Context $context): void {
$someUserData = [/** ... */];
$context->publish(new UserDataLoadedEvent($someUserData));
}
ничё не возвращаем)

Vitaly
09.08.2018
13:33:56
Огонь)

Maksim
09.08.2018
13:34:19
басы аще никак не мешают делать бяки. Ну вот совсем никак
и, кстати, чем больше ими обмазываюсь, тем больше думаю, что вскоре моя шина научится возвращать результат в добровольно принудительном порядке.

Vitaly
09.08.2018
13:36:48

Maksim
09.08.2018
13:37:16
а где там связь между шинами и мидлварами?
мидлвар для транзакций аще как-то жутко звучит
чую мерзкий запах ларавеля

Vitaly
09.08.2018
13:38:26

Maksim
09.08.2018
13:38:43
мб кому-то и удобно, но я бы своим парням за такое руки сломал

Vitaly
09.08.2018
13:38:55

Maksim
09.08.2018
13:39:12
не очевидно, тупо и те, кто используют явно не в курсе принципов работы транзакций
а плюсов аще нету

Dmitry
09.08.2018
13:40:09

Maksim
09.08.2018
13:40:20

Bohdan
09.08.2018
13:40:51

Vitaly
09.08.2018
13:42:46

Maksim
09.08.2018
13:43:19
угу, как скажешь)

Bohdan
09.08.2018
13:43:40
мне что-то подсказывает, что вешать транзакции вот ваще на все - плохая затея