@symfony_php

Страница 786 из 1418
Sergey
27.03.2018
16:08:03
не думаю что ты меня понял)

Konstantin
27.03.2018
16:08:05
а сейчас время от времени в частном чате возникают вопросы "почему не работает" )

ну, где без версионирования

Sergey
27.03.2018
16:08:19
ну, где без версионирования
"без версионирования" != "без мозгов"

Google
Konstantin
27.03.2018
16:08:31
там модели данных просто толстеют и толстеют а люди забывают ставить депрекейтед например на каких то параметрах

а версия не меняется. ни адреса, ни номинально

понятно что апи развивается но потом начались смешные правила типа "если указали А не указывайте Б потому что будет ошибка"

Sergey
27.03.2018
16:09:49
а версия не меняется. ни адреса, ни номинально
ну даже если ты не юзаешь версионирование - "какую-то" версию на которую расчитывает клиент тебе надо присылать. Тебе ж надо как-то знать все ли обновились и можно дропать совместимость.

но это даже близко не походит на варианты версионирования на урлах (ты думаю и сам понимаешь что это рак), и очень отдаленно напоминает вариант через content negotiation

это больше про процессы и то как ты работаешь с клиентами твоей API

типа та же штука что теги для билдов твоего приложения - это не влияет на то как ты код пишешь но для процесса это важно

повторюсь - как бы ты не делал - на стороне приложения, на стороне логики приложения, у тебя должна быть обратная совместимость, ты ж не можешь сделать 2 приложения которые будут работать по разному в зависимости от клиента

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

p.s. штуки типа graphql позволяют вообще не заморачиваться ибо ты всегда знаешь какие клиенты что юзают, это решает вопрос "когда депрекейтед штуки можно удалить"

Konstantin
27.03.2018
16:14:58
ты сам делал уже на грфе?

Sergey
27.03.2018
16:15:23
да, пока маленькую апишечку

Konstantin
27.03.2018
16:15:29
там же наверное ппц геморой настраивать лимиты выборки

Google
Sergey
27.03.2018
16:15:43
там же наверное ппц геморой настраивать лимиты выборки
да нет, не особо... расставил наугад косты (здравый смысл) и вуаля

для публичного API гемороя конечно больше, но похожие проблемы и с http api) только больше для клиента)

если клиенту ну вот надо достать кучу данных - он достанет, просто сделает N запросов

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

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

Konstantin
27.03.2018
16:18:57
а еще каждый из N запросов может быть по отдельности быстрее чем 1 общий на граф. клиент просто начнет какие то данные получать быстрее. понятно что все запросы дольше будут

Sergey
27.03.2018
16:19:34
> а еще каждый из N запросов может быть по отдельности быстрее быстрее конечно, но добавь к этому лэтенси (особенно мобильных сетей), даже http2 тебе тут не особо спасет

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

и graphql начинает уже выигрывать)

правда на запись на graphql сделано как по мне убого но жить можно

ну и вообще graphql не надо воспринимать как "убийцу rest" - оно хорошо дополняет друг друга)

Konstantin
27.03.2018
16:25:14
чуваки, прерву ваши возвышенные беседы о вечном

а не появилось какой нормальной альтернативы свифтмейлеру?

Sergey
27.03.2018
16:26:17
а не появилось какой нормальной альтернативы свифтмейлеру?
примерно такого же - нет (зачем такой же пилить?))

есть конечно PHPMailer но это то же самое примерно

многие просто переключаются потиху на всякие sendgrid-ы или mailgun-ы и шлют не через smtp а через апишки

а для smtp - лучше сэндгрида ниче нет

Konstantin
27.03.2018
16:32:33
да, я тоже сильно за хттп вместо смтп

но тогда надо очереди свои городить

а поцфекс это все сам делает за тебя

Google
Konstantin
27.03.2018
16:32:54
знай шли себе в локалхост

но там смтп нужен =/

Vladislav
27.03.2018
18:16:40
Возьми nelmioapidoc и все будет хорошо

Sergey
27.03.2018
18:17:25
(у сваггера чуть лучше). Почти все кастомные лесапеды ищут (и почти всегда на ноде потому что расчитывать на нормальные тулы на php не приходится)

Bohdan
27.03.2018
18:27:05
ага, интересовался такими штуками все тлен, разве писать под сваггер вручную (и под 3)

Bohdan
27.03.2018
18:31:47
сваггер руками как-то вообще не ок
не нашёл нормального пока ну и без графкуэля, пока к нему не готов (нужно пощупать)

я же хотел интеграции с json schema а в неё умеет только третий сваггер а в него никто не умеет)

Денис
27.03.2018
19:39:12
спасибо за ответы )

Vladislav
27.03.2018
19:58:48
или нет)
та там все ок, там от nelmio парсинг роутинга, сущностей и форм. все остальное php swagger

Sergey
27.03.2018
19:59:50
та там все ок, там от nelmio парсинг роутинга, сущностей и форм. все остальное php swagger
я могу сказать так: - формы в апишках не нужны вообще - если у тебя модель данных в сущностях (по сути в базе) такая же как и в респонсах API - рассмотри вариант вообще ничего не писать а заюзать какой-нибудь гейтвей к базе

Petr
27.03.2018
20:03:10
сваггер руками как-то вообще не ок
На самом деле весьма ок, если в команде работают люди, которым не впадлу по человечески задокументировать реализованный ими функционал

Мы пишем все в yaml-файлах, обмазываемся рефами, дробим все на мелкие файлы, а на выходе получаетчя один скомпилированный json-файл

Смущает только скудная экосистема вокруг openapi 3. Даже банального валидатора доки найти не удалось, поэтому проебы замечаются лишь спустя какое-то время

Google
Petr
27.03.2018
20:19:53
во, та же фигня формат хорош, но экосистемы йок
До формата тоже можно доклпаться. Например, там нельзя два разных респонса на один статус код повесить. Ухх. Приходится изголяться, делая ключи вида 400 (Validation Error) и 400 (Invalid JSON)

Bohdan
27.03.2018
20:20:28
по крайней мере он мощнее иных

Sergey
27.03.2018
20:26:44
вдруг кого-то заинтересует: https://vaughnvernon.co/?p=942 The Ideal Domain-Driven Design Aggregate Store?

Marat
27.03.2018
22:55:44
рельсы говно, симфони топчик
а как вам http://hanamirb.org/ ?

Artem
28.03.2018
03:33:38
Vladislav
28.03.2018
03:35:44
а как вам http://hanamirb.org/ ?
Не воспринимай это серьезно

Admin
ERROR: S client not available

Vladislav
28.03.2018
03:35:53
Это была шутка скорее всего

Shmaltorhbooks
28.03.2018
07:52:51
http://symfony.com/blog/new-in-symfony-4-1-messenger-component

Bohdan
28.03.2018
07:56:05
о, его уже прямо воткнули

неделю назад там был один коммит кажись)

Dmitriy
28.03.2018
08:17:22
крутяг

можно будет развернуть мессаджориентированную архитектуру )

Greabock
28.03.2018
08:21:51
Может кто помнит, был у меня косяк с доктриной и постгрес. Дифф генерировал лишние действия в миграции. (Типа приведение к datetimetz, то что и так TIMESTAMP(0) WITH TIME ZONE). Так вот я разобрался. Косяк связан с потерявшимися доктриноваскими комменитами вида (DC2Type:datetimetz). Вот такая вот херня... кто ж знал что доктрин юзает комменты, как мету к таблицам...

Andrew
28.03.2018
08:23:49
Dmitriy
28.03.2018
08:25:03
будет монолит на мессаджах

вместо иньекции сервисов в экшн, будем диспатчить мессаджи

Dmitriy
28.03.2018
08:25:45
дык есть евент диспетчер

Dmitriy
28.03.2018
08:25:55
это евенты

Dmitriy
28.03.2018
08:25:58
т.е. ты мог такое делать уже лет как 10)

Google
Andrew
28.03.2018
08:26:04
https://github.com/php-enqueue/async-event-dispatcher

Dmitriy
28.03.2018
08:26:05
мессаджи это наоборот

Andrew
28.03.2018
08:26:23
и точно command bus поддерживает асинхронный диспатчинг команд

Dmitriy
28.03.2018
08:26:55
дык есть евент диспетчер
евенты - есть 1 евент и куча подписчисков мессаджы - есть 1 мессадж, который все вызывают

Alan
28.03.2018
08:27:56
а если много ивентов и много мессаджей?)

Dmitriy
28.03.2018
08:28:05
и это все различие) в нескольких строках кода

Konstantin
28.03.2018
08:41:28
может ивенты это в пределах одной системы, а мессаджи между разными системами, не?

Andrey
28.03.2018
08:42:06
ивенты можно тоже в бекграунд отправлять

Bohdan
28.03.2018
08:42:14
и где-то там ларавел пробегал

Alan
28.03.2018
08:57:27
ну мб эвент это мессадж который описывает кто его кинул (причина) и имеет какой то контекст

а мессадж это прост данные

Konstantin
28.03.2018
09:09:37
+1

Alexey
28.03.2018
09:10:19
@spudro а чем не устраивает стандарный механизм подключения ExceptionHandler через конфиг? (через event'ы)

просто любопытно

Alexey
28.03.2018
09:11:35
через kernel.exception, да

подключение ExceptionListener по сути то же самое, что и ExceptionHandler

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