@symfony_php

Страница 634 из 1418
Sergey
11.02.2018
11:12:52
вся соль в том что идея "у меня есть BalanceService и он это все делает" - это просто демонстрация лени и отсутствия воображения)

Andrey
11.02.2018
11:12:53
Нет не расппределенная, но планировалась с возможностью подключения другого сервера мускула

Alexander
11.02.2018
11:13:00
в документации есть про редринг контроллера из шаблона
это да, но на сколько это будет правильно?

Google
Andrey
11.02.2018
11:13:26
или просто лэджер?
Что это такое?

Sergey
11.02.2018
11:13:29
типа такого?

это да, но на сколько это будет правильно?
вопрос правильно или не правильно - это надо вникать в контекст проблемы. В целом это неплохой способ снизить связанность

Что это такое?
загугли) account ledger

Andrey
11.02.2018
11:14:53
Да только хранилась строгая структура.

А так похоже

Alan
11.02.2018
11:15:47
знаешь как работают extra lazy ассоциации?
ну я попробую, но к примеру 10тыс транзакций у пользователя, мне кажется пыхом их считать будет тяжеловато

Sergey
11.02.2018
11:15:59
еще рас спрошу - ты знаешь как работают extra lazy ассоциации в доктрине?

Andrey
11.02.2018
11:16:50
Оно

Sergey
11.02.2018
11:17:33
ну я попробую, но к примеру 10тыс транзакций у пользователя, мне кажется пыхом их считать будет тяжеловато
ну и справедливости ради - со 2-ой доктриной это не тривиальная штука конечно, вот в 3-ей может наконец сделают более удобно

но я бы лэджен на доктрине бы и не делал)

Google
Andrey
11.02.2018
11:18:55
Если совсем не в моготу и хочется все считать сразу создай свой em с хранением в redis

и грей каждый раз после деплоя редис кеш

Муторно выглядит но тогда быстро при большом объеме данных

Alexander
11.02.2018
11:19:19
вопрос правильно или не правильно - это надо вникать в контекст проблемы. В целом это неплохой способ снизить связанность
есть меню админки, которое на всех страницах, с одной стороны можно его и с шаблона деграть, но этот частный случай модет разползтись по другому функционалу, еще думал про вариант с get

Sergey
11.02.2018
11:20:04
вопрос в том нужны ли сервисы в сущностях для этого)

Andrey
11.02.2018
11:20:23
нет

Sergey
11.02.2018
11:20:33
нет
бизнес логика у тебя где?

Andrey
11.02.2018
11:20:37
SOLID

Sergey
11.02.2018
11:20:39
есть логика в сущностях?)

Andrey
11.02.2018
11:20:40
KISS

Нет

Sergey
11.02.2018
11:20:53
KISS
ой только не начинай, а то мне придется проверять что ты имеешь ввиду под этим

Нет
значит уже не solid

Andrey
11.02.2018
11:21:10
Скоро 14 февраля

Sergey
11.02.2018
11:21:11
и уже не совсем kiss

Andrey
11.02.2018
11:21:14
:)

Alan
11.02.2018
11:21:19
еще рас спрошу - ты знаешь как работают extra lazy ассоциации в доктрине?
я не знаю как с ними посчитать сумму, вижу что есть методы которые можно исопльзовать с коллекцией и не спровоцировать полную загрузку

Google
Andrey
11.02.2018
11:22:05
Потому что, для того чтобы за инджектит сервис в сущность, нужно хакнуть доктриновский лисенер

smile
11.02.2018
11:22:06
Доброго дня снова! Скажите, а что вы использовали в качестве js клиента для отправки GraphQL запросов? Я использую библиотеки apollo-client и apollo-upload-client. Мне теперь нужно понять - это особенность этих библиотек или особенность Overblog GraphQL, а именно то, что, если отправлять мультипарт запрос с помощью apollo-upload-clien, то Overblog GraphQL не видит в запросе query и variables. Я залез в парсер запроса Overblog GraphQL - там он понимает, что может прийти мультипарт и ожидает его, но ожидает набор полей: query variables operationName В то время как Apollo посылает поля: operations map Судя по всему еще и формат хранимого полей различается, так как я уже пробовал жестко присвоить operations в query. Не помогло. Вот Request Payload, который шлется у меня на сервер: ------WebKitFormBoundaryfEqDQZLBkEmGBjvm Content-Disposition: form-data; name="operations" {"query":"mutation ($performer: PerformerInput!) {\n Performer(input: $performer)\n}\n","variables":{"performer":{"id":null,"firstName":"","lastName":"","patronymic":"asas","instagramLink":"","youtubeLink":"","insiderInfo":"","image":null}}} ------WebKitFormBoundaryfEqDQZLBkEmGBjvm Content-Disposition: form-data; name="map" {"0":["variables.performer.image"]} ------WebKitFormBoundaryfEqDQZLBkEmGBjvm Content-Disposition: form-data; name="0"; filename="blob" Content-Type: text/plain ------WebKitFormBoundaryfEqDQZLBkEmGBjvm-- Данные у меня все тестовые, так что не боюсь публиковать. От Overblog GraphQL отказаться уже не могу. Но JS клиент могу взять любой. Подскажите мне выход, если вы знаете уже готовый сценарий отправки файла на Overblog GraphQL сервер. Буду очень благодарен. Ведь у меня нет времени писать собственный парсер запросов
на js вместо какогото спец клиента для graphql - юзаю обычный fetch, собирая запрос темплейтами es6. Пока не возникало необходимости какуюто либу тулить ещё

Andrey
11.02.2018
11:22:59
иногда это полезно

Sergey
11.02.2018
11:23:21
иногда это полезно
ну вот приведи пример)

Andrey
11.02.2018
11:23:30
Но это нарушает принцип счистого кода. так ка увеличивает связанность

Sergey
11.02.2018
11:23:36
иногда это может свидетельствовать о неверной декомпозиции)

Andrey
11.02.2018
11:23:36
Ну смотри

Согласен

Все должно быть разумно, но пример большой буду писать

Sergey
11.02.2018
11:24:09
Но это нарушает принцип счистого кода. так ка увеличивает связанность
связанность от этого никуда не дивается и даже наоборот может увеличиться (появляются геттеры)

есть ситуации где выделение логики в сервис упрощает все, и есть наоборот. Но ты говоришь что ты вообще не хранишь логику в сущностях

Alan
11.02.2018
11:28:46
ну а теперь представь что у тебя своя коллекция
что-то вроде своей LazyCriteriaCollection которая умеет сумму посчитать по критериям, как они это делают для количества? $this->count = $this->entityPersister->count($this->criteria)

Sergey
11.02.2018
11:29:02
типа того

эх дожить бы до третьей доктрины где можно свои персистеры для сущностей ваять и коллекции

Andrey
11.02.2018
11:34:44
Есть проект, который пресдставляет из себя магазины, которые доступны на разных доменах, сайтов ограниченное кол-во основная идея что один и тот же товар продается в разных магазах. Не проблема вроде сделать сущность сайт, и запихнуть ее в базу, но товаров много а джойны и тем более join table я не люблю. Поэтому решено было хранить сайты в конфиге, и для этого был разработан сервис site. А для хранения типа сайта был сделан свой тип для доктрины котороер посути является array_type слегка расширенное, так вот это поле хранит сайт хендлы через запятую в базе, при загрузке срабатывал ивент доктрины в который был за инджектен сайт сервис который инициализирует array_collection и все сущности думают что это обычная аррай коллекция. Но возникла необходимость сделать каноникал для продуктов, и вот тогда было решение заинджектить сервис в сущность SITE потому что логика довольно мутная и именно был нужен сервис.

Он был за инжекжен прикрываясь Dependency Inversion принципом

Но в конце концов он был выпилен и сейчас занимается отдельный рендер не нарушая никаких принципов.

Alan
11.02.2018
11:37:34
$canonical = product->canonical($canonicalService) чем плохо?

продукт знает на каком он сайте

Google
Alan
11.02.2018
11:38:22
ну если любишь джойны)

Andrey
11.02.2018
11:38:29
Ну а насчет логики в сущностях если function getFullName () {return sprintf('%s-%s', $this->name, $this->surname) такую логику я использую

Ты хардкодишь сервис наймы?

Или просто инджектишь сервис в рантайме?

Alan
11.02.2018
11:39:57
просто инжект в метод

Andrey
11.02.2018
11:40:41
Не правильно выразился сущность в доктрин евентах получает свой сервис?

Или он в базе сохранен?

Я че собственно зашел, кто то юзает transchoice

У меня строка '{0}|{1}This video article is using this video|]1,Inf[These video articles are using using this video' не могу ее в translatiom.yml запихнуть ругаетсо

Sergey
11.02.2018
11:44:23
Есть проект, который пресдставляет из себя магазины, которые доступны на разных доменах, сайтов ограниченное кол-во основная идея что один и тот же товар продается в разных магазах. Не проблема вроде сделать сущность сайт, и запихнуть ее в базу, но товаров много а джойны и тем более join table я не люблю. Поэтому решено было хранить сайты в конфиге, и для этого был разработан сервис site. А для хранения типа сайта был сделан свой тип для доктрины котороер посути является array_type слегка расширенное, так вот это поле хранит сайт хендлы через запятую в базе, при загрузке срабатывал ивент доктрины в который был за инджектен сайт сервис который инициализирует array_collection и все сущности думают что это обычная аррай коллекция. Но возникла необходимость сделать каноникал для продуктов, и вот тогда было решение заинджектить сервис в сущность SITE потому что логика довольно мутная и именно был нужен сервис.
скажи, в чем с точки зреия клиентского кода разница между сущностью, которая хранит свои данные в базе, и сущностью, которая хранит данные на файловой системе?

Admin
ERROR: S client not available

Andrey
11.02.2018
11:44:56
предлагают сделать через name place holder типо 'video_is_using' и использовать фильтр но я как то для инглиша не заводил свой translation. yml

Sergey
11.02.2018
11:44:57
или вся проблема в том что ты не знаешь как подружить эти сущности на уровне доктрины?

Он был за инжекжен прикрываясь Dependency Inversion принципом
заинджекчен типа в контроллер? чем дабл диспатч не угодил?

или другое - нафига вообще для урлов что-то в сущность пихать?

это ж чисто ui layer

Alan
11.02.2018
11:46:19
каноникал то да только в разметку нужен а не для логики

Andrey
11.02.2018
11:47:17
скажи, в чем с точки зреия клиентского кода разница между сущностью, которая хранит свои данные в базе, и сущностью, которая хранит данные на файловой системе?
Не совсем, мне нужно было именно иметь поле в базе, чтобы понимать быстро может ли эта сущность показываться на данном сайте

Andrey
11.02.2018
11:48:01
Google
Sergey
11.02.2018
11:48:09
Andrey
11.02.2018
11:48:15
Ну да

Уже убрали

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

или другое - нафига вообще для урлов что-то в сущность пихать?
У тебя если продукт он всегда имеет свой путь правильно?

Sergey
11.02.2018
11:50:21
У тебя если продукт он всегда имеет свой путь правильно?
у меня продукт это не всегда одна сущность

и я не боюсь джойнов)

Andrey
11.02.2018
11:50:29
Но он не может быть просто products/%path

Sergey
11.02.2018
11:50:43
у меня вполне может быть отдельная сущность CanonicalUrl

которая говорит что куда

и это будет отдельная хрень и продукт об этом всем ничего знать не будет

Andrey
11.02.2018
11:51:14
Для меня сущность это то что хранится где либо?

Sergey
11.02.2018
11:51:20
я вижу проблему в желании все пихать в сущность продукта

Andrey
11.02.2018
11:51:22
у тебя такой же взгляд?

Sergey
11.02.2018
11:52:29
у тебя такой же взгляд?
для меня сущность это сущность, именно в терминах бизнеса. То есть у меня продукт с точки зрения UI может представляться несколькими сущностями, каждая из которых вполне независима (ProductPrice, ProductDetails, Discounts, CanonicalUrl и т.д.)

Andrey
11.02.2018
11:53:09
Нет сущность продукта хранит только path конечный endpoint в зависимости от созданных адаптеров для сайтов разделов строится полный пункт и свой собственный router это все разруливает, дергая dynamicServiceFacade который резолвит конкретные адаптеры которые в конце концов дергают рендеры и процессоры

Sergey
11.02.2018
11:53:41
у меня это не так

и меня интересуют люди которые считают что надо именно так. Пока я дописал себе в список проблем боязнь джойнов и овер оптимизация запросов до того как возникает проблема

Andrey
11.02.2018
11:55:27
но это не является областью ответственности сущности. Исключение - это когда у тебя сущность это тупо контейнер с данными
Да в 99% у меня сущность это контейнер + анотации + какие то мелкие методы типо получение полного имени и то это иногда вызывает множество проблем :) типо нет фамилии или еще что то

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