@symfony_php

Страница 266 из 1418
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
Ага, а в адрес что бы - будем через геокодер яндекса прогонять каждый раз, наверное ;)
можешь скачать базу у geonames, штукарь баксов стоит всего или даже меньше

ты я так понял вообще VO не делаешь никогда?

с такой логикой

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

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

Sergey
01.08.2017
17:32:24
будешь делать сущностью или VO?

Почему, я VO и у пользователя делаю ;)
то есть ты сделаешь историю адресов коллекцией VO?

или ты просто юзаешь VO в контексте юзеров? типа там UserProfile?

Dmitry
01.08.2017
17:33:35
Конечно, зачем мне 10 сущностей с одним адресом

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

Sergey
01.08.2017
17:34:24
Конечно, зачем мне 10 сущностей с одним адресом
и будешь это хранить как jsonb поле в таблице с юзерами?

юзеры отдельно, заказы отдельно, адресный справочник отдельно

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
Артур Евгеньевич
01.08.2017
19:53:10
а сделать отдельно сервис для генерации links?
так там все равно забивать хардкодом получается эти значения придется

и еще далше выносить их из контроллера

Артур Евгеньевич
01.08.2017
19:55:06
а чего ты хочешь добиться?
я хочу чтобы я вот решил поменять префикс с /api/ на /restapi/

и мне не пришлос везде менять это

Aleh
01.08.2017
19:57:15
я хочу чтобы я вот решил поменять префикс с /api/ на /restapi/
class Router { public function statisticsLink(Request $request, Link $link) { return sprintf(“%s/api/statistics/%s”, $request->getHost(), $link->getTiny()); } }

или 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
Вопрос скорее хочешь ли ты от этой детали абстрагироваться

если id не родной)
Родной ид в пхп это ссылка на объект

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
@mkusher а как опеределить границы инфраструктуры? это исходя из предметной области?
Да, по сути ты из предметной области выкидываешь второстепенные детали, которые бизнесу непринципиальны

Это в идеальном случае

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

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

Maks
02.08.2017
11:51:26


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