
Sergey
25.12.2017
23:27:20
type Query {
me: UserProfile
}
как-то так
то есть это те же контроллеры но чуть-чуть прикольнее

Google

Big_Shark
25.12.2017
23:28:59
как-то так
Вот почему такие резолверы просто не сгенерить, а дальше человек пускай там делает что хочет и вызывает какие угодно сервисы

Sergey
25.12.2017
23:29:28
это можно чуть позже запилить дополнительно
но в целом.... на более-менее полезный генератор я потрачу месяц... он будет экономить мне минуту в день.... окупится он.... не окупится он короч

Big_Shark
25.12.2017
23:30:42

Sergey
25.12.2017
23:31:01
и если тебе нужны все поля
короч, давай пока пропустим момент с кодогенерацией - я не вижу в этом смысла и это можно потом запилить

Big_Shark
25.12.2017
23:32:04

Sergey
25.12.2017
23:32:05
и если тебе нужны все поля
тут поясню - у тебя есть юзер, есть пол id, name, birthday и userpic и для userpic ты хочешь свой ресолвер с аргументами

Big_Shark
25.12.2017
23:32:53

Sergey
25.12.2017
23:32:54

Google

Sergey
25.12.2017
23:33:31
смешивать UI логику формирования урла на картинку и бизнес логику?

Big_Shark
25.12.2017
23:34:02
Потому что у меня такиз полей может быть штук 5 в одном типе, и еще штук 5 в другом, в итоге если у каждого резолвер, то получается что резолверы будет типа resolveUserDescription, resolveUserAvatar и тд

Sergey
25.12.2017
23:34:27

Big_Shark
25.12.2017
23:34:36

Sergey
25.12.2017
23:34:56
в этом же сервисе можешь держать любые ресолверы которые нужны для этого типа
или группы филдов
это тебе решать
как структурировать это добро

Big_Shark
25.12.2017
23:35:49
Смотри, у типа есть куча полей, и для какого-то отдельного поля у нас может быть отдельный резолвер, верно?

Sergey
25.12.2017
23:36:14
но продолжай

Big_Shark
25.12.2017
23:37:10
В итоге ты предлагаешь на каждое такое поле делать отдельную функцию резолвер, или отдельный тип?

Sergey
25.12.2017
23:37:50
type UserProfile {
id: ID!
name: String!
birthDay: DateTime
userPic(size: Size): Thumb
}

Big_Shark
25.12.2017
23:38:46
Ну по факту это кастомный тип, и для него отдельный резолв
type UserProfile {
id: ID!
name: String!
birthDay: DateTime
description: String <-- очень большя срань которая хранится вообще хз где
}
Вот как в таком случае быть
делать отдельный типа description?

Sergey
25.12.2017
23:39:59
function resolveUser(User $user) {
return [
'id' => $user->id,
'name' => $user->name,
'birthDay' => $user->birthDay,
'description' => $user->description,
];
}

Google

Sergey
25.12.2017
23:40:21
то где хранится твой дескрипшен - это уже не мое дело - этим пусть персистенс лэйер занимается
но давай вернем мой пример с userPic и аргументом (или добавь аргумент в дескрипшен)

Big_Shark
25.12.2017
23:41:04

Sergey
25.12.2017
23:41:18
вот есть у тебя этот дискрипшен который ты почему-то должен отдельно получать, так?
где ты хочешь это делать? как бы ты хотел видеть ресолверы?

Big_Shark
25.12.2017
23:42:17
type UserProfile {
id: ID!
name: String!
birthDay: DateTime
description(format: Format): String
}

Sergey
25.12.2017
23:42:26
да, норм
как ты хочешь видеть ресолвер и почему не хочешь просто сделать еще один метод в том же сервисе?

Big_Shark
25.12.2017
23:43:21

Sergey
25.12.2017
23:43:43

Big_Shark
25.12.2017
23:43:49

Sergey
25.12.2017
23:44:25

Big_Shark
25.12.2017
23:44:47

Sergey
25.12.2017
23:45:06
мне приятнее расценивать ответ сервера как композицию данных

Big_Shark
25.12.2017
23:45:32

Sergey
25.12.2017
23:45:41
и меня в целом не парит что для одной записи я 3 поля тут достаю и еще 2 поля там

Google

Sergey
25.12.2017
23:46:09
вроде бы все очевидно

Big_Shark
25.12.2017
23:47:08

Sergey
25.12.2017
23:50:19

Big_Shark
25.12.2017
23:51:01
филд типа можно)
Ну ладно, я с этим готов мирится, если ты просто сделаешь норм АПИ ко всему остальному)

Sergey
25.12.2017
23:51:13

Big_Shark
25.12.2017
23:52:22
что есть "все остальное"?
Задача простой, я хочу зайти в редми, найти пример кода, или квик старт, посмотреть на код, и не выплюнть свой кофе на экран ноутбука как мне приходится делать когда я смотрю все либы который есть сейчас)

Sergey
25.12.2017
23:52:46
пока я чисто прототип запилил корявый
и эксперементирую

Big_Shark
25.12.2017
23:53:06

Admin
ERROR: S client not available

Sergey
25.12.2017
23:53:12
))

Big_Shark
25.12.2017
23:53:17

Sergey
25.12.2017
23:53:38
короч как чего будет - сразу покажу, это может будет уже на днях

Big_Shark
25.12.2017
23:54:14

Sergey
25.12.2017
23:54:26

Big_Shark
25.12.2017
23:54:30
ок
@fes0r ты сф4 же ставил?

Sergey
25.12.2017
23:57:15
да

Google

Big_Shark
25.12.2017
23:59:19
да
Я вот уже несколько раз ставил для разных пэт проэктов и тд, и каждый раз меня убивало что надо грубо говоря пакеты ставить и ставить и ставить, как думаешь на счет скрипта который после установки будет спрашивать что нужно, мол апи надо? рест или граф? Граф? Какую из вот этих 3 либ, админка нужна? Какую из вот этих либ, и тд
То есть список вопросов определенный, который позволит достаточно быстро выбрать что тебе нужно, и уже получить все это сразу
а не устанавливая по одному, пытаясь вспомнить или найти их названия

Sergey
26.12.2017
00:00:28
у меня нет таких потребностей... у меня в полне стандартные требования к скелету проекта)
ну и в целом ты можешь рецептов себе наделать
ну либо можешь конечно плагин для композера замутить который будет нормально пакеты формировать... но лично мне это не особо нужно а потому я плохой советчик

Big_Shark
26.12.2017
00:01:24

Sergey
26.12.2017
00:01:55
свой

Big_Shark
26.12.2017
00:02:06

Sergey
26.12.2017
00:02:51
все на гитхабе но под 4-ку пока жалкая веточка висит. я сча на пет проджекте пробую, например я отказался от lexic jwt
ну и пока не допилил замену
отказался от fos rest
но еще не допилил
так что когда пет проджект допилю - повыношу все что натворил
и займусь наконец убером (проект пример о том как готовить доктрину ну и в целом что-то прикольное)
а пока пилю свои чатики и эксперементирую с graphql

Vladislav
26.12.2017
00:04:06
еще бы ланосы поменял в убере, так вообще золотым человеком был бы

Big_Shark
26.12.2017
00:07:33

Sergey
26.12.2017
00:08:46
ну и просто не могу уже пол года за них сесть

Big_Shark
26.12.2017
00:10:05