@prophp7

Страница 1372 из 1387
Maksim
23.10.2018
11:44:55
Самописный
stoppropagation есть?)

Vitaly
23.10.2018
11:46:00
stoppropagation есть?)
Ээээ.... Нет

Bohdan
23.10.2018
11:48:31
Точнее его вызывает шина, которая хэндлит команду
ну у меня типа rich model и хендлеры команд вызывают методы сущностей

Google
Bohdan
23.10.2018
11:49:55
а в хендлерах вызывается уже сервис, который диспатчит (на самом деле только сохраняет) ивенты

ну а диспатчатся они уже другой мидлварой на шине

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

Vitaly
23.10.2018
11:50:31
ну у меня типа rich model и хендлеры команд вызывают методы сущностей
Ну под application service я и подразумевал хэндлер команды, но не в этом суть. Суть в том, что теперь в каждый хэндлер придется заинжектить диспатчер. Чёт бо-бо.

Я по post flush собираю ивенты
Да, такой вариант и предлагают, но чёт не нравится мне он, не хочу завязываться на доктрину.

Bohdan
23.10.2018
11:51:13
не вижу беды на самом деле по-хорошему хендлеры должны быть просто интерфейсом к сущностям (в них не должно быть ветвлений)

Sergey
23.10.2018
11:51:36
Ну под application service я и подразумевал хэндлер команды, но не в этом суть. Суть в том, что теперь в каждый хэндлер придется заинжектить диспатчер. Чёт бо-бо.
Либо добавить шине мидлвар который по завершению работы будет диспатчить ивенты собранные командой

Но лучше в сущности

Хотя конечно надо смотреть

Bohdan
23.10.2018
11:52:28
у меня такое тоже было, но: 1. сейчас я вообще перешел на один флаш в конце выполнения команды (тоже мидлвара) 2. тоже не хочу завязываться на доктрину 3. иногда чешется выбрасывать ивент из хендлера (когда неудобно бросать его из сущности - но пока что я не делал такого)

Но лучше в сущности
ну у меня у сущностей есть трейт (атата) для сохранения ивентов

Google
Bohdan
23.10.2018
11:53:04
типа EventRecorder

Sergey
23.10.2018
11:53:12
У меня базовый класс вообще

Раньше трейт был

Bohdan
23.10.2018
11:54:26
и есть отдельный рекордер как сервис (юзающий тот же трейт) который принимает ивенты из команд и в мидлваре их отдает у меня наоборот - раньше был базовый класс (lite-cqrs), сейчас трейт (tactician + tactician-domain-events)

Vitaly
23.10.2018
11:54:36
Либо добавить шине мидлвар который по завершению работы будет диспатчить ивенты собранные командой
Ок. А как быть если часть хэндлеров хотелось бы выполнить в рамках текущей транзакции, а другую часть как интеграционные ивенты?

Maksim
23.10.2018
11:54:57
страдания синхронной схемы...)

Vitaly
23.10.2018
11:55:04
Саги)
Так и думал))

Bohdan
23.10.2018
11:58:01
страдания синхронной схемы...)
мне незачем асинхронная, а для выпиливания синхронной - я не все вопросы, связанные с этим, закрыл для себя)

Vitaly
23.10.2018
12:00:52
Спасибо!

Artur
23.10.2018
12:06:01
геохэши в теории будут лучше
работает на расстоянии между точками но для поиска от случайной точки походу будет фулскан

Alexander
23.10.2018
12:23:30
тут где-то недавно поднимали тему, что в шторме добавили дженерики в EAP, у кого-нибудь получилось ими воспользоваться? я ожидал что такой PHPDoc-блок /** * @var ArrayCollection<CDR> An array of CDR objects. */ public $cdrs; вот в таком применении: foreach ($cdrList->cdrs as $cdr) { $cdr->from; } будет подсказки для типов показывать, но что-то не взлетело

Sergey
23.10.2018
12:24:24
работает на расстоянии между точками но для поиска от случайной точки походу будет фулскан
ну тогда квадраты) я повторюсь - я поиск по радиусу обычно делал через обычные спариал индексы постгиса

https://stackoverflow.com/questions/36705355/finding-geohashes-of-certain-length-within-radius-from-a-point/44494879

вот эту штуку смотрел?

Maksim
23.10.2018
12:37:05
тут где-то недавно поднимали тему, что в шторме добавили дженерики в EAP, у кого-нибудь получилось ими воспользоваться? я ожидал что такой PHPDoc-блок /** * @var ArrayCollection<CDR> An array of CDR objects. */ public $cdrs; вот в таком применении: foreach ($cdrList->cdrs as $cdr) { $cdr->from; } будет подсказки для типов показывать, но что-то не взлетело
лучше приучить себя описывать типы в формате какого-нибудь псалма. в шторме оно либо не работает, либо я конченный кретин и не разобрался как описываются (что более вероятно, да и хер с ним, со штормом) если явно описать тайпхинт для $cdr /** @var $cdr CDR **/ foreach ($cdrList->cdrs as $cdr) толку будет сильно больше. Ну а сам доктайп оформить в виде array<int, CDR>

Alexander
23.10.2018
12:40:38
лучше приучить себя описывать типы в формате какого-нибудь псалма. в шторме оно либо не работает, либо я конченный кретин и не разобрался как описываются (что более вероятно, да и хер с ним, со штормом) если явно описать тайпхинт для $cdr /** @var $cdr CDR **/ foreach ($cdrList->cdrs as $cdr) толку будет сильно больше. Ну а сам доктайп оформить в виде array<int, CDR>
вариант с /** @var CDR $cdr */ это то, что я использую сейчас, но хотел в кои-то веки порадоваться жденерикам хотя бы на уровне IDE и перестать писать. не вышло) еще работает вариант /** @var Collection|CDR[] */, но опять же, расчитывал, что дженерики в анотациях позволят избавиться от этого

Maksim
23.10.2018
12:42:28
ну, что-то явно пошло не по плану) можно сюда призвать @prnsk и поспрашивать как правильно дженерики описывать в этом вашем шторме)

Anton
23.10.2018
12:43:07
мб они релиз документ выкатили, а сами изменения забыли ?

просто я тоже как-то не смог

Google
Anton
23.10.2018
12:43:20
но особо не старался

Alexander
23.10.2018
12:43:35
с момента анонса я раз в неделю пробую и всё никак)

Maksim
23.10.2018
12:43:48
я старался, но оказался слишком тупым) в итоге психанул, закрыл всё псалмом

на ide пофиг уже

Alexander
23.10.2018
12:44:36
я за комфорт в процессе разработки, за всякие подсказки по Ctrl+Space и т.д.)

Maksim
23.10.2018
12:44:50
именно поэтому пхп выбрал, да)

комфорт со всех щелей)

Alexander
23.10.2018
12:45:57
пхп выбрал потому что была возможность будучи студентом устроиться джуном в веб студию за 1к $ по старому курсу)

это потом уже, через пол года после трудоустройства 1к превратились в 0.5к ?

Roman
23.10.2018
12:46:33
ну, что-то явно пошло не по плану) можно сюда призвать @prnsk и поспрашивать как правильно дженерики описывать в этом вашем шторме)
должно работать в ЕАП, скиньте пожалуйста пример когда который не работает - разберемся

Alexander
23.10.2018
12:47:28
для джуна шикарно ))
на тот момент это было 25-30к рублей всего

Maksim
23.10.2018
12:47:42
должно работать в ЕАП, скиньте пожалуйста пример когда который не работает - разберемся
<?php class Qwerty { public $a; public $b; } /** * @param array<Qwerty> $collection * * @return void */ function(array $collection): void { foreach($collection as $entry) { $entry-> } }

@param array<int, Qwerty> $collection @param array<mixed, Qwerty> $collection следом

Roman
23.10.2018
12:49:10
Спасибо! Посмотрим

Alexander
23.10.2018
12:49:15
пример с доков с ArrayObject<int> тоже не сработал

Maksim
23.10.2018
12:49:29
Спасибо! Посмотрим
PhpStorm 2018.3 EAP Build #PS-183.3795.24, built on October 17, 2018

Anton
23.10.2018
12:50:51
а не, у меня старая версия значит.

Shmaltorhbooks
23.10.2018
12:51:14
https://blog.jetbrains.com/phpstorm/2018/09/phpstorm-2018-3-eap-183-2635-12/

пишут, что вот тут еще добавили

Google
Alexander
23.10.2018
12:52:51
пишут, что вот тут еще добавили
ну вот оно-то и не работает)

Artur
23.10.2018
13:22:18
ну тогда квадраты) я повторюсь - я поиск по радиусу обычно делал через обычные спариал индексы постгиса
с квадратами тоже есть заморочка(о которой я явно не сказал) 1 градус по длине во владивастоке и в мурманске отличается ровно в 2 раза :) но я знаю как это решить с помощью математики

хотя я допускаю что чего-то недоглядел и можно таки решить ГИСТом

Anton
23.10.2018
13:29:17
о вопрос актуальный ктонить с радиусами гео поиска в sql работал?
Да, я работал. пилил поиск по радиусу. причем я делал именно ранжирование по растоянию.

причем я настолько загнялся, что запилил нелинейную функцию ранжирования. Общая идея такая, что если объект находится в A находится в 10 метров от тебя, а B в 110 метрах. То вес А будет намного сильнее. Нежеле чем объект А и B находились в 1000 и 1010 метрах соответсвенно.

Valentin
23.10.2018
14:01:35
причем я настолько загнялся, что запилил нелинейную функцию ранжирования. Общая идея такая, что если объект находится в A находится в 10 метров от тебя, а B в 110 метрах. То вес А будет намного сильнее. Нежеле чем объект А и B находились в 1000 и 1010 метрах соответсвенно.
А в чём практическая польза настолько разного веса если в конечном итоге для пользователя всё равно будет выведен список отсортирован по весу даже если он будет 1 для А и 2 для Б, а не там условно вес 50 для Б и только 10 для А?

Anton
23.10.2018
14:23:27
А в чём практическая польза настолько разного веса если в конечном итоге для пользователя всё равно будет выведен список отсортирован по весу даже если он будет 1 для А и 2 для Б, а не там условно вес 50 для Б и только 10 для А?
практическая польза была в том, что при ранжировании учитывался еще и рейтинг. и там например когда два объекта с рейтингом 4.5 и 4.6, но между ними расстояние 500 метров, то первым будет тот у которого рейтниг ниже. т.к. он находится вблизи для рейтинга тоже использовалась нелинейная функция

я помню еще ПМу рисовал график и таблицу значений в качестве примера

Artur
23.10.2018
14:26:53
с математикой я могу помочь. какая изначальная проблема?
изначальная описана выше. текущая: как найти координату

но я еще даже не гуглил :)

по идее можно решить от обратного в формуле расстояния между точками

Anton
23.10.2018
14:30:40
изначальная описана выше. текущая: как найти координату
не совсем понял. какую координату ты ищешь

> о вопрос актуальный ктонить с радиусами гео поиска в sql работал? Для этого тебе не нужно искать координату. или я не совсем понимаю что ты хочешь

Artur
23.10.2018
14:32:55
есть некоторое множество точек в 1 записи бд надо найти все записи у которых 1 или последняя или любая точка лежит в радиусе от точки заданной пользователем

ну если уж совсем из далека

не совсем понял. какую координату ты ищешь
есть точка lat,lon надо от нее отнять Х км на уровне php про гшироте и долготе и добьавить их же

проблем к слову я тоже не вижу. спросил для общего понимания туда ли смотрю

Google
Anton
23.10.2018
14:34:40
а для чего это нужно? выглядит так, что ты хочешь какой-то квадрат очертить?

Artur
23.10.2018
14:34:56
а для чего это нужно? выглядит так, что ты хочешь какой-то квадрат очертить?
как и написал выше найти все зжаписи с гео в квадрате

но радиус квадрата и его центр задает пользователь

Shmaltorhbooks
23.10.2018
14:35:48
радиус квадрата

Artur
23.10.2018
14:36:50
квадрат упрощение для оптимизации поиска :)

Anton
23.10.2018
14:37:04
квадрат на геоиде -- это фигура довольно таки замысловатая. и расстояние нужно считать до угла или же паралели/вертикали ?

ну вообще радиус

проще

Anton
23.10.2018
14:37:25
как я говорил запилить радиус

Artur
23.10.2018
14:37:26
еще раз

есть точка заданная пользователем

мне надо найти все записи с гео расстояние между заданной точкиой и точкой в записи меньше* Х км

как я говорил запилить радиус
вот и пилю радиус квадрата

:)

Anton
23.10.2018
14:38:07
ну вот другое дело

то что я и решал

Anton
23.10.2018
14:38:35
до 10 миль (у меня были мили) найти и отранжировать ряд объектов

ну извини все твои сообщения я не смогу прочесть. поэтому и уточнил.

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