@prophp7

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

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
ну опиши билдер в сервисе, скормив ему репозиторий в конструктор и опционально всякие мидлвары. а уже в методе получения пользователя реквест передавай. Но эт не билдер, эт чёто более топорное

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
Dmitry
09.08.2018
10:53:41
UPDATE banner_views SET views=views+1 WHERE id IN (1, 2, 3)
в том то и дело, что может быть не 1 просмотр. а сразу 2 и более для 1 id

поэтому только через INSERT ... UPDATE

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

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

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
я сегодня за фесора: резолверы
Не обязательно. Ну и валидация при помощи исключений, это как-то странно

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

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
А что это за шина? Это из симфони или какой-то базовый концепт?
Это шаблон проектирования CommandBus. Реализаций масса. Вот тут чуть подробнее о чем это. https://matthiasnoback.nl/2015/01/responsibilities-of-the-command-bus/

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
ну и рспределёнка - уже не команд, а мессейдж

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
public function handle(GetUserDataCommand $command) { } ня_)
ну это уже не про комманд басы, а про мозги)

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

Maksim
09.08.2018
13:30:03
ну это уже не про комманд басы, а про мозги)
в синхронных комманд басах я в целом смысла не вижу. Сраная туча геморроя по разруливанию всяких ситуаций, а толк... ну хз. мб он где-то есть , но мне не понять

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
название команды смотри
Ну вот так же нельзя, если используешь командбас, то следуешь парадигме CQS

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
и, кстати, чем больше ими обмазываюсь, тем больше думаю, что вскоре моя шина научится возвращать результат в добровольно принудительном порядке.
А каким образом без шины можно реализовать концепцию middleware? Для валидации, например или для бд транзакций. Декоратором над контроллером?

Maksim
09.08.2018
13:37:16
а где там связь между шинами и мидлварами?

мидлвар для транзакций аще как-то жутко звучит

чую мерзкий запах ларавеля

Vitaly
09.08.2018
13:38:26
мидлвар для транзакций аще как-то жутко звучит
Ниче не жутко, очень удобно, без лишних зависимостей в сервисах.

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

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

а плюсов аще нету

Dmitry
09.08.2018
13:40:09
мб кому-то и удобно, но я бы своим парням за такое руки сломал
у тебя все живые, а то часто слышу о членовредительстве ???

Bohdan
09.08.2018
13:40:51
ни единой царапины)
нет тела - нет царапины

Vitaly
09.08.2018
13:42:46
не очевидно, тупо и те, кто используют явно не в курсе принципов работы транзакций
Ну хз. о каких принципах речь? ACID? В таком случае ничто не противоречит. Следуя логике CQS можно все команды на запись выполнять через шину с поддержкой транзакций.

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

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

Страница 1249 из 1387