
Sergey
13.02.2017
09:23:01
ну то есть в целом у тебя все будет сводиться больше к старому доброму RPC

Виталий
13.02.2017
09:23:12
Через апишку гоняются связанные данные: заказы с позициями, товары клиента, и тд...

Sergey
13.02.2017
09:23:43

Виталий
13.02.2017
09:23:49

Google

Sergey
13.02.2017
09:24:24

Виталий
13.02.2017
09:24:55

Sergey
13.02.2017
09:25:03
https://gist.github.com/fesor/9200f444742d9fe7ec1205cb1e072fd0
я тут кое чего накидывать хотел когда-то

Виталий
13.02.2017
09:25:14
Сижу разбираюсь какие есть спецификации и что подойдет конкретно мне.

Sergey
13.02.2017
09:26:59
стандарт норм, но он сложный
ну то есть... с точки зрения бэкэнда он несет в себе порой ненужную сложность
сильных недостатков там нет
все упирается только в то что есть подходы попроще
например HAL

Виталий
13.02.2017
09:28:18
стандарт норм, но он сложный
а в чем сложность?
Я ранее делал апишки с output & input in JSON но форматы сам придумывал. Как ошибки отдавать, коды ответов, и все такое... выгодило не очень.
А эта штука вроде все стандартидирует.

Sergey
13.02.2017
09:28:43
ну как ошибки отдавать и т.д. это ты можешь механизмы http юзать

Google

Sergey
13.02.2017
09:28:52
просто многие этого не делают

Виталий
13.02.2017
09:29:05
ну вот я дублировал коды в тело ответа :)

Sergey
13.02.2017
09:29:09
сложность в том что тебе надо описать все структуры данных явно и всеравно есть ограничения по уровню вложенности
главное что бы небыло такого что в теле код 500 а в заголовках 200

Виталий
13.02.2017
09:29:54
ахах

Salavat
13.02.2017
09:30:07

Sergey
13.02.2017
09:30:22
если тебе тупо данные гонять, то ты можешь взять какой-нибудь стандарт вроде HAL
или вообще взять fractal для php и играться

Виталий
13.02.2017
09:30:54

Sergey
13.02.2017
09:31:06
@voskobovich сразу спрошу, а тебе получается оба сервиса принадлежат? почему ты решил их разделить? Поиграться в микросервисы?
Да, оно.

Виталий
13.02.2017
09:31:39

Sergey
13.02.2017
09:32:02
ааа, тут тогда надо долго думать с позиции как твой SaaS будут использовать
идеально было бы глянуть на API других SaaS
ну и в целом всякие гитхабы на graphql потихоньку уходят
просто потому что невозможно сделать абсолютно универсальную API

Виталий
13.02.2017
09:32:51
хм

Sergey
13.02.2017
09:33:12
а с Graphql ты определяешь только структуры данных, а как с ними взаимодействовать решает клиент
https://www.youtube.com/watch?v=wPPFhcqGcvk

Google

Sergey
13.02.2017
09:33:33
вот можешь глянуть
но опять же у graphql есть свои минусы и проблемы
потому хорошенько подумай и может быть стоит начать с rest
ну и все сильно от задач зависит

Ivan
13.02.2017
09:35:06
а в чем реальное преимущество rest перед jsonapi ?

Виталий
13.02.2017
09:35:22

Ivan
13.02.2017
09:35:34
вот и мне так кажется

Виталий
13.02.2017
09:35:48
одно спецификация а второе архитектурный стиль
:)

Sergey
13.02.2017
09:35:56
ну мол конкретной реализацией принципов
в vs между ними нет никакого смысла

Sergey
13.02.2017
09:36:51
а с точки зрения инфраструктуры победителем пока всеравно выходит graphql)))
точнее инструментов

Ivan
13.02.2017
09:37:06
уху. надо изучить

Виталий
13.02.2017
09:37:19
так, в общем.
Пока что у меня 3 объекта: клиент, заказ и товар.
Не думаю что мне надо графапи.
Надо начать с REST но реализовывать на конкретной спецификации. В итоге надо выбрать между JSONAPI и HAL. Так?

Sergey
13.02.2017
09:37:24
для jsonapi есть только спека и чутка реализаций. Там нет модных средств верификации обратной совместимости в API
например
ну мол.... "так пользователю могут понадобиться его последние заказы + инфа о продуктах"

Google

Sergey
13.02.2017
09:38:16
или еще чего такого

Виталий
13.02.2017
09:38:26
угу, понял

Sergey
13.02.2017
09:39:16
ну и три сущности у тебя пока. Надо думать наперед

Sergey
13.02.2017
09:39:46
как-то я не пойму в аллокации памяти
если делаешь
$a = array_fill(0,100000, md5(1));
$a = [];
то пхп сразу выделяется тонна памяти, а потом освобождается полностью
а если сделать тот же фокус с нативным драйвером монги
$data = $client->find(
$criteria,
['projection' => array_fill_keys($fields, 1), 'typeMap' => ['root' => 'array']]
)->toArray();
$data = [];
то память не освобождается, но при этом при следующем запросе, он не просит лишней памяти, если результат влазит в ту что есть
и вот я не пойму, если система выделяет скажем 500мб memory pages и потом не забирает ее обратно, то почему такое не работает в первом примере?

Sergey
13.02.2017
09:40:33
эм.... нативный драйвер монги сам занимается управлением памяти?

Виталий
13.02.2017
09:40:54
Так, а подскажите еще с авторизацией.
Идея в том, чтобы клиент в кабинете создавал апп новый и получал к нему токен вечный, который зашивается в код проги. Под это есть спецификации какие-то?
Я уверен что не я первый такое придумал...

Sergey
13.02.2017
09:41:10

Алексей
13.02.2017
09:42:17

Виталий
13.02.2017
09:42:58
Это уже сделано :) Но все же должна быть спецификация на это, рекомендации и правила. Нет?

Admin
ERROR: S client not available

Sergey
13.02.2017
09:43:09
секретный токен это обычно что-то типа
openssl rand -hex 16

Виталий
13.02.2017
09:44:51
для вечных токенов - нет. Есть Oauth2
то есть OAuth — открытый протокол авторизации, который позволяет предоставить третьей стороне ограниченный доступ к защищённым ресурсам пользователя без необходимости передавать ей (третьей стороне) логин и пароль.

Sergey
13.02.2017
09:45:47

Виталий
13.02.2017
09:47:21
Всем спасибо :)

Sergey
13.02.2017
10:05:55
https://bugs.php.net/bugs-getting-valgrind-log.php есть такая штука, но чет не хочет на бету os x устанавливаться через brew :(

Google

Sergey
13.02.2017
10:08:19
ну и если экстеншен не юзает похапэшный способ аллокации памяти то профайлинг будет уже проблематичен

Дмитрий
13.02.2017
10:09:04
Привет всем.
Настроил 2 подключения к БД - default и MD
Для авторизации поставил FOSUserBundle
Как в настройках указать чтобы FOSUserBundle использовал em MD?

Sergey
13.02.2017
10:09:48
переопределить менеджер и провайдер
ну мол явно указать нужный менеджер
#Fosuserрак

Алексей
13.02.2017
10:10:31
FOSCancerBundle

Sergey
13.02.2017
10:11:19
FosTumorBundle

Sergio
13.02.2017
10:35:54
привет всем
вопросик у меня такого плана возник: использую knplabs/doctrine-behaviors для включения мультиязычности в сущности БД. я правильно понял, что он работает по принципу: мы в необходимой энтити определяем поле которое ДОЛЖНО быть мультиязычным (например comment), после чего мапим его на, собственно, энтити в котором и содержатся все варианты перевода (commentTranslations)?
и вообще кто что скажет на счёт knplabs/doctrine-behaviors? и что вы используете для включения мультиязычности?

Алексей
13.02.2017
10:36:51
2. gedmo/translatable

Roman
13.02.2017
10:37:26
я использовал, но только там где есть возможность самому строить структуру базы

Sergio
13.02.2017
10:38:33

Roman
13.02.2017
10:38:50
нет
да, у кнп принцип примерно такой

Алексей
13.02.2017
10:40:20
Ну, на самом деле, и так тоже можно сделать. Зависит от.

Roman
13.02.2017
10:40:57
но с гедмо они различны.
мне гедмо кажется деревяным и неудобным. один раз попробовал, не понравилось

Sergio
13.02.2017
11:03:25
ясно. спасибо за советы. остановлюсь на кнп, пожалуй

Sergey
13.02.2017
13:28:36
для любителей поизучать чужой код. приложуха на симфони - https://github.com/wallabag/wallabag

Alan
13.02.2017
13:32:20
редис и реббит по дефолту в паблик смотрят) реди без пароля, ребит с guest/guest
rabbitmq:
image: rabbitmq:3-management
ports:
- "15672:15672"
redis:
image: redis
ports:
- "6379:6379"

Sergey
13.02.2017
13:32:35
:D