
Sergey
29.11.2016
16:49:56
возможно придется написать свой мэппер простенький
посмотрим как пойдет
ут идеи нужды

Fayozjon [CybernatiC]
29.11.2016
16:51:00
Насколько правильно юзать вебсокеты на php?

Google

Sergey
29.11.2016
16:51:22

Fayozjon [CybernatiC]
29.11.2016
16:51:27
Ram ведь скушает ?

Sergey
29.11.2016
16:51:35

Sergey
29.11.2016
16:51:55
ну мол реализацией клиента для socket-io есть под все (javascript, ios, android, win phone)
с авто реконнектами, буферами и т.д.
ну то есть зачем изобретать велосипед

Fayozjon [CybernatiC]
29.11.2016
16:52:36
Понял рахмет

Sergey
29.11.2016
16:52:49
если тебе нужно что-то специфичное на websockets то тогда можно думать
а есть задача стандартная - лучше socket-io

Fayozjon [CybernatiC]
29.11.2016
16:57:32
Спасибо Сергей

Sergey
29.11.2016
16:59:56
https://gist.github.com/Enleur/102c82a80bd4787bc5f4630d978dd9fa
$mapper->map($request, RegisterUserRequest::class)

Google

Sergey
29.11.2016
17:02:47
@fes0r не?

Sergey
29.11.2016
17:03:46
не
проблема с аннотациями - версионизация мэппингов
хотя я еще думаю над этим
надо тогда придумать как быть с версионизацией и тогда все збс

Sergey
29.11.2016
17:09:13
версионизация мэппингов" мм?

Sergey
29.11.2016
17:09:20
версионизация API

Sergey
29.11.2016
17:09:39
разные данные на вход получать?

Sergey
29.11.2016
17:09:58
ну тип того
POST /api/v1/sessions
email (string)
password (string)
POST /api/v1/sessions
identity (string)
secret (string)
например
мэпятся одинаково
точнее надо старую версию под новую мэпить
use Mapper\{Query, Body, Version};
/**
* @Body("email", version="v1")
* @Body("identity", version="v2")
*/
public $identity;
хз

Sergey
29.11.2016
17:12:18
может разные экшены стоит заводить под такое?

Sergey
29.11.2016
17:12:39
эм...

Sergey
29.11.2016
17:12:41
мне кажется ты сильно много от мэпера хочешь

Sergey
29.11.2016
17:12:53
как это поможет если этот RequestObject используется как DTO для сервисного слоя?)
ну то есть это не HttpRequest

Google

Sergey
29.11.2016
17:13:10
это просто объект с ходящими данными

Sergey
29.11.2016
17:13:12
а ну ок, убедил)

Sergey
29.11.2016
17:13:30
я могу например в тестах его юзать или в фикстурах

Sergey
29.11.2016
17:13:31
тогда как ты выше написал ок в целом

Sergey
29.11.2016
17:13:31
$request = new RegisterUserRequest();
$request->name = $faker->name;
$request->email = $faker->email;
/// ...
$user = $registerUserHandler($request);
ну ок
тогда другая проблема
public function registerUserAction(RegisterUserRequest $request)
{
// ...
}
у меня нет возможности определить что это надо мэпить)
и я не хочу вводить никаких дополнительных аннотаций или чего-то такого

Sergey
29.11.2016
17:17:52
есть)

Sergey
29.11.2016
17:18:04

Sergey
29.11.2016
17:18:26
@ParamConverter("request")
?

Sergey
29.11.2016
17:18:40
это и есть "лишняя" штука
хочу без нее)
я ленивый да
я потом хочу еще из json-ки генератор этих объектов)

Sergey
29.11.2016
17:19:14
там вроде можно и без нее

Sergey
29.11.2016
17:19:19
не, прикол в том

Google

Sergey
29.11.2016
17:19:24
что если ты хочешь юзать аннотации
ты их должен обрабоать при отчистке кэша
а это значит ты должен либо загрузить вообще все классы в системе
либо ты должен указать какие грузить

Sergey
29.11.2016
17:19:56
ты о чем именно?

Sergey
29.11.2016
17:20:21
ну... если ты не знал, ты не можешь тупо заюзать аннотации и все. Их надо "загрузить" и прочитать метаданные

Sergey
29.11.2016
17:20:44
я не пойму при чем то что ты сверху написал

Sergey
29.11.2016
17:22:17
ну короч моя штука сейчас тупо смотрит автоматически
мол если ты хочешь прокинуть инстанс типа RequestObject или Mappable
то ты точно знаешь что его надо мэпить

Admin
ERROR: S client not available

Sergey
29.11.2016
17:22:38
и не надо париться с аннотациями и прочим
а тут хз
либо просить что бы имплементили пустой интерфейс
тогда норм
но опять же вопрос с загрузкой аннотацией
короч плюс аннотацией - сложнее проиграть с мэппингами полей, минусы - сложнее с точки зрения обработки метаданных и реализации самого мэппера

Sergey
29.11.2016
17:24:55
как по мне наоборот проще

Sergey
29.11.2016
17:25:07
попробуй сделать такой)
что бы не требовал дополнительных аннотацией в контроллере или дополнительной конфигурации

Google

Sergey
29.11.2016
17:25:37
что бы тупо "работало"

Sergey
29.11.2016
17:26:16
без @ParamConverter("request")?

Sergey
29.11.2016
17:26:23
да, без

Sergey
29.11.2016
17:26:26
но сама DTO с аннотациями?

Sergey
29.11.2016
17:26:31
да
мэппинги ж надо куда-то писать

Sergey
29.11.2016
17:26:56
понял, попробую)

Sergey
29.11.2016
17:27:17
начни с простого
сделай так, что бы у тебя собирались метаданные
запросов
без необходимости конфигурации и без ограничений "где классы лежат")
и ты быстро проиграешь)

Sergey
29.11.2016
17:28:10
ок)
щас одну херню на проекте доделаю и попробую наварганить на коленке

Sergey
29.11.2016
17:28:36
если у тебя получится - с меня пиво и ты сделаешь очень большое дело
ради такого даже в Киев слетаю

Sergey
29.11.2016
17:29:10
"я джва году жду такую игру"
@fes0r
https://github.com/Enleur/request-mapping/blob/master/src/AppBundle/Controller/DefaultController.php
https://github.com/Enleur/request-mapping/blob/master/src/AppBundle/Request/RegisterUserRequest.php

Sergey
29.11.2016
18:54:10
метаданные в рантайме собираются чтоле?

Sergey
29.11.2016
18:54:35
ну как и в Serializer/Validator/PropertyAccessor и че там еще
реалтайм + кеш