
Sergey
01.08.2017
17:28:55
но там чуть другие штуки

Dmitry
01.08.2017
17:29:05
Ага, а в адрес что бы - будем через геокодер яндекса прогонять каждый раз, наверное ;)

Sergey
01.08.2017
17:29:43
или города если сеть большая

Google

Sergey
01.08.2017
17:30:22
ты я так понял вообще VO не делаешь никогда?
с такой логикой
у тебя есть сумма за заказ - количество денег и валюта. код валюты ж может поменяться

Dmitry
01.08.2017
17:32:19
Почему, я VO и у пользователя делаю ;)

Sergey
01.08.2017
17:32:24
будешь делать сущностью или VO?
или ты просто юзаешь VO в контексте юзеров? типа там UserProfile?

Dmitry
01.08.2017
17:33:35
Конечно, зачем мне 10 сущностей с одним адресом
но это в случае ручной отработки адреса, если используется адресный справочник - тут связь и там и там

Sergey
01.08.2017
17:34:24
юзеры отдельно, заказы отдельно, адресный справочник отдельно

Google

Sergey
01.08.2017
17:35:08
у всего есть идентификаторы мне их хватает
если исчезнет адрес - заказ исчензуть не может
если исчезнет юзер - заказ не исчезнет
они живут своими жизнями и никак не пересекаются
гормония и low cooupling/high coheasion

Dmitry
01.08.2017
17:35:58
Адрес может поменяться. Например, меняется подчинение города, переименовывается область и т.п. В итоге у тебя в таблице заказов будут невалидные адреса

Sergey
01.08.2017
17:36:22

Dmitry
01.08.2017
17:37:02
Ага, и адрес будет уже сущностью ;)

Sergey
01.08.2017
17:37:17
более того, адрес будет храниться вне контекста юзера или ордера
мы можем копию хранить на всякий но это не обязательно
будет подсистема для работы с адресами

Dmitry
01.08.2017
17:38:28
Ну типа того, ладно, приятно был пообщаться. Про валюту - не знаю, например, если это баланс счета в банке - может и будет валюта как отдельная сущность

Sergey
01.08.2017
17:38:55
а коды валют никогда не меняются, тут я тебе немного соврал

Dmitry
01.08.2017
17:39:19
меняется курс

Sergey
01.08.2017
17:39:33
курс запоминается на момент транзакции если речь идет о транзакции обмена

Dmitry
01.08.2017
17:40:11
нет "транзакции обмена", есть списание с одного счета в одной валюте и зачисление на другой счет в другой валюте ;)

Sergey
01.08.2017
17:40:48
так сделано почти во всех системах с которыми я работал во всяком случае
мне понравился пример по поводу VO vs Entity. Есть у тебя две стодоллоровые банкноты. Тебе чаще всего плевать какую из них принять в оплату. Это просто значения. Но если ты монетный двор то тебе важны идентификаторы каждй банкноты и ты их между собой различаешь.

Google

Dmitry
01.08.2017
17:46:43
Если ты делаешь VO 100 USD и у тебе нужен курс для отображения - сколько это в EUR, то USD и EUR по сути начинают являться индентификаторами

Артур Евгеньевич
01.08.2017
18:03:53
Привеет всем
'statisticLink' => $request->getHost() . '/api/statistic/' . $link->getTiny(),
есть такая байда в одном из методов контроллера. /api/statistic/ - это роут соответсвующий одному из методов того контроллера. Могу я его ка кто получить чтобы не хардкодить?
если делать вопрос более общим, можно ли получать роуты контроллера в виде строки?

Sergey
01.08.2017
18:51:08
можешь заинжектить роутер
из него по айди дергать роут

Артур Евгеньевич
01.08.2017
19:24:03
класс стандартный симфоневский?

Aleksey
01.08.2017
19:24:48
$container->get('router')->generate('some_route_name', ['foo' => 'bar']);
Что-то вроде такого

Артур Евгеньевич
01.08.2017
19:25:49
https://stackoverflow.com/questions/34678737/symfony2-get-route-path

Артур Евгеньевич
01.08.2017
19:26:13
бля ну все равно отсается хардкодд)
тогда уж в константу вынести проще

Aleksey
01.08.2017
19:26:52
url в константу? Дык а роутинг для чего тогда?

Артур Евгеньевич
01.08.2017
19:27:49
я сокращаю ссылку, и возвращаю ответом линк на сокращенной версии и линк со статистикой переходов
и сокращенная версия и статистика переходов это роуты привязанные к определенным экшнам контроллера
$response = new JsonResponse([
'tinyLink' => $request->getHost() . '/' . $link->getTiny(),
'statisticLink' => $request->getHost() . '/api/statistic/' . $link->getTiny(),
]);
то есть я хочу /api/statistic/ получать динамически и добавлять параметр к ней

Andrew
01.08.2017
19:38:07

Google

Sergey
01.08.2017
19:39:28

Артур Евгеньевич
01.08.2017
19:53:10
и еще далше выносить их из контроллера

Aleh
01.08.2017
19:54:21

Артур Евгеньевич
01.08.2017
19:55:06
и мне не пришлос везде менять это

Aleh
01.08.2017
19:57:15
или
class Router {
const PREFIX = “api”
public function statisticsLink(Request $request, Link $link) {
return sprintf(“%s/%s/statistics/%s”, $request->getHost(), self::PREFIX, $link->getTiny());
}
}

Admin
ERROR: S client not available

Ivan
02.08.2017
08:41:26
Привет всем.
Использование gethostbyname внутри сущности Server - это плохо?
public function detectIp(): string
{
return gethostbyname($this->host);
}
инфраструктура внутри слоя бизнес-логики?

Bohdan
02.08.2017
08:44:30
Server - сущность?

Ivan
02.08.2017
08:46:30
да

Bohdan
02.08.2017
08:49:28
да, не очень красиво
лучше либо вынести в сервис
либо получать и сохранять айпи при создании самой сущности (добавить в нее поле)
но это уже от поставленной задачи зависит

Ivan
02.08.2017
08:50:22
ip может меняться

Aleh
02.08.2017
08:50:30
Ну тут смотря чего добиться хочешь
Красиво/некрасиво такой себе критерий
Захочешь например кастомный резолвер+свой кеш к нему, создашь интерфейсик и дабл диспатчем прокинешь
Пока нет проблемы, возможно не стоит ее решать)

Google

Ivan
02.08.2017
08:52:01
да, проблемы нет
в данной реализации

Aleh
02.08.2017
08:54:24
это имеет место или нет?
Скорее всего да, но вопрос в границах инфраструктуры. В каком-то отдалении идшник в сущносте это тож инфраструктурная деталь

Ivan
02.08.2017
08:55:00
если id не родной)

Aleh
02.08.2017
08:55:02
Вопрос скорее хочешь ли ты от этой детали абстрагироваться

Ivan
02.08.2017
08:55:15
ну пока не хочу
родной для сущности
типа isbn для Book

Aleh
02.08.2017
08:55:45
А, ну такое да)

Ivan
02.08.2017
08:55:47
не суррогатный

Aleh
02.08.2017
08:55:52
Ага

Ivan
02.08.2017
08:59:55
@mkusher а как опеределить границы инфраструктуры? это исходя из предметной области?

Aleh
02.08.2017
09:01:07
Это в идеальном случае

Maks
02.08.2017
09:01:59
Всем привет. Юзал ли кто кэш второго уровня доктрины ?

Aleh
02.08.2017
09:02:03
А так добавляются еще твои потребности в данный момент

Sergey
02.08.2017
11:50:47

Maks
02.08.2017
11:51:26