@symfony_php

Страница 747 из 1418
?
16.03.2018
08:08:52
я уж лучше тогда сам задам :х

Bohdan
16.03.2018
08:09:12
а закинь мне примерчик
дабы не влезать в дебри теоретического нда - сейчас придумаю что-то аналогичное

Alan
16.03.2018
08:11:48
Google
Alan
16.03.2018
08:11:58
отчетики всякие

Sergey
16.03.2018
08:12:44
репортинг вроде норм в отдельный контекст уходит
контексты не должны пересекаться. Так что либо ты для репортов свои проекции данных строишь, и при этом завязан на все остальное приложение, либо это на самом деле не контекст

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

ну и куча таких вот примеров которые многие (в том числе и я) выделяют в "отдельный контекст"

поиск какой-нибудь, репорты...

а потом ты смотришь на всю получившуюся связанность и думаешь "ну и где блин тут изоляция? Нафига это все?"

Bohdan
16.03.2018
08:16:32
мне кажется или я вижу здесь признаки rule engines?

Alan
16.03.2018
08:16:41
ну у меня отчеты получилось это просто апишка с dbal

Bohdan
16.03.2018
08:16:46
по крайней мере, что-то схожее есть

Alan
16.03.2018
08:17:40
свои проекции данных это о том что я выборку делаю по полям таблиц которые строятся сущностями из другого контекста?

Bohdan
16.03.2018
08:18:06
я так понимаю, что нет

без сущностей

вьюшки и подобное

Google
Sergey
16.03.2018
08:19:34
мне кажется или я вижу здесь признаки rule engines?
да, есть такое... я ж на этот доклад вышел не просто так)) я искал материалы на тему декомпозиции которые предлагают альтернативы) и там вполне себе разжевано то что мне и други люди говорили)

но я их не очень понимал в то время))

Evegniy
16.03.2018
08:20:31
Всем привет. А моглибы вы подсказать, есть возмжоность вызывать из контроллера, другой контроллер, или в идеале из одного контроллера, получить информация из 2-3 других. Для апи сделать мультизапрос?

Evegniy
16.03.2018
08:21:42
у контроллера есть метод forward. Почитай про sub-requests в симфони
Спасибо огромное, я просто думал это как internalredirect ))

Sergey
16.03.2018
08:22:19
свои проекции данных это о том что я выборку делаю по полям таблиц которые строятся сущностями из другого контекста?
смотри, вся соль разделения на контекста в том что бы ты мог максимально независимо делать дела. То есть нужна минимально необходимая связанность. Полностью изолировать не выйдет, маловероятно. Но стремиться надо)

Alan
16.03.2018
08:22:23
нет, это когда у твоего контекста свои таблицы, полностью отдельно и они "как-то обновляются".
ага вроде не предвидится пока... для репортов это могло бы быть чем то вроде Dimensional Modeling как у кликхауса когда у тебя есть таблица фактов и таблица измерений но чето нафиг пока

Andrey
16.03.2018
08:23:58
но все же - не понравилось? мне вот понравилось) Правда не надо в крайности - у меня например на один метод API есть жирная выборка, части которой имеют свои джойны и юзаются в других местах. Но вот для этой штуки сильно усложняется гидрация и логика самих запросов. А так вжух, 3 выборки, каждая с 3-мя джойнами, склеил выплюнул. Удобно. По производительности не сказать что плохо. Да и доктрине с гидрацией проще)
Не успел я понять, или понравилось, ибо не довёл до конца. Разбиратся в таком коде выборок себе дороже. А джоинить из трёх таблиц это рухнет как только часть данных "переедет" в другое хранилище с тех или иных причин. Да и знать назв. таблиц нужно (или вести регистр/шарить константами (знать за класс, где взять константу))

Sergey
16.03.2018
08:25:17
но это все можно победить)

Sergey
16.03.2018
08:27:13
Я об to many и говорю
у меня просто были хэлперы которым я говорил что на что мэпить и все)

оно конечно не так красиво... иногда приходилось лишние id-ки экспоузить...

но... конкретно мои проблемы решало хорошо, и это было лучше чем дублирование логики выборок в 5-ти местах потому что оно надо и там и там но чуть по разному

еще одна идея - это "выборки которые занимаются поиском возвращают только ID-ки" и выборки которые выплевывают данные это чисто where in запросы)

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

Google
Sergey
16.03.2018
08:42:21
да, можно и так. Пугают разве что "хелперы"
ну это не "хелперы", у меня это дата лоадеры звались)

Sergey
16.03.2018
08:42:33
у кого-то был успешный опыт использования php-pm?

Sergey
16.03.2018
08:42:51
Sergey
16.03.2018
08:42:53
там например какие-нибудь небольшие сервисы для внутренней сети

Sergey
16.03.2018
08:43:24
был маленький внутренний сервис для деплоя... но там все оч просто...

ну то есть, там и работа с базой была через dbal (sqlite), и чистить особо нечего было...

Вадим
16.03.2018
09:06:44
@fes0r Помнится не давно, ты рассказывал о юзер бандле, типа Credentials отдельно, а инфа о юзере отдельно. Хотел спросить, какие в таком случае есть адекватные методы вытягивания инфы о пользователе, если есть 2-3 типа юзеров? По твоей концепции, для каждого типа пользователя должна быть отдельная сущность. Например Manager, Customer, Admin.

Sergey
16.03.2018
09:07:46
заказ привязан только к покупателю, продукт только к продавцу и т.д

Andrey
16.03.2018
09:08:44
еще одна идея - это "выборки которые занимаются поиском возвращают только ID-ки" и выборки которые выплевывают данные это чисто where in запросы)
и дублирование этих методов для каждого случая (findNotBanned & findNotBannedIds). Вводить понятие критерии ну нафиг пока

Sergey
16.03.2018
09:08:55
А производитель?
производитель чего?)

Константин
16.03.2018
09:09:00
Товара)

Sergey
16.03.2018
09:09:02
это пользователь?

или это просто характеристика товара

ну и в целом да, линк на производителя в товаре который он производит, че б нет

Вадим
16.03.2018
09:10:32
ну тип по моей концепции у тебя связи между конкретными сущностями. Ну то есть это не та бредовая идея с "полиморфной связью" это к вопросу выбора ролей
Ну после логина, как получить Manager или Customer или Admin сущность, не делать же 3 селекта в разные таблицы для проверки ? И как понять кто залогинился? Это же доктриновское наследование придется юзать, но тогда один пользователь может быть только кемто одним.

Google
Sergey
16.03.2018
09:11:25
можно сделать айдишки для этих сущностей одинаковыми что бы не годать

много вариантов есть)

Константин
16.03.2018
09:11:54
Кто нибудь настраивал Varnish? Гайдик по поводу кеширования с куками PHPSESSIONID есть у кого?

Вадим
16.03.2018
09:12:11
можно сделать айдишки для этих сущностей одинаковыми что бы не годать
А что это даст? я про связь Credentials->Profile а не Profile->Credentials

Sergey
16.03.2018
09:12:56
А что это даст? я про связь Credentials->Profile а не Profile->Credentials
соль в том что ты их разделяешь. Кто к кому решаешь сам. Credentials отдельно, profile отдельно. Тогда у тебя появляется возможность потихоньку "реюзать" модуль с аутентификацией

если хочешь "вживую глянуть" как это работает - посмотри на auth0.com

Вадим
16.03.2018
09:14:02
соль в том что ты их разделяешь. Кто к кому решаешь сам. Credentials отдельно, profile отдельно. Тогда у тебя появляется возможность потихоньку "реюзать" модуль с аутентификацией
Профиты я понимаю, вот пока не могу понять, как по Credentials получить профиль пользователя, если он может быть в одной из трех таблиц.

Sergey
16.03.2018
09:14:10
и просто прикинь как бы ты делал свое приложение если бы у тебя все управление кредами было через этот сервис

Вадим
16.03.2018
09:16:00
Саму аутентификацию я понял, я не понимаю как красиво креды связать с профилем, если профили это разные сущности. Придеся либо в креды писать тип пользователя, типа доктриновского наследования, либо хз как.

Admin
ERROR: S client not available

Sergey
16.03.2018
09:17:34
Роли получается по любому привязываются к Credentials. Верно?
ну все зависит от того как ты делаешь аутентификацию.

в одном из последних проектов у меня просто всегда при логине указывалось под какой ролью я хочу зайти и далее система просто проверяла можно мне или нет

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

сам понимаешь что все упирается в специфику твоего проекта

Andrey
16.03.2018
09:21:11
ммм почему дублирование? findNotBanned внутри юзает просто findByIds
Сколько публичных методов для выборки юзеров не забаненных и айдишек их же? 2 ведь

Вадим
16.03.2018
09:21:43
сам понимаешь что все упирается в специфику твоего проекта
Получается, мне нужно какой-то идентификатор что б знать где стянуть профиль. Вопрос простой, есть три типа пользователей, профиль каждого типа в отдельной Entity. После логина мне надо вывести профиль юзера какой залогинился. Вот и у меня вопрос в том ,как узнать в какой табличке его искать. Таким образом получается что в credentials я должен записать тип, что потом найти профиль. Но идея состояла в том, что б в Credentials не менять.

Maxim
16.03.2018
09:21:43
Кто нить брал курсы на udemy? Есть ли смысл по симфони брать

Konstantin
16.03.2018
09:23:53
посоветуйте файловый репозиторий на симфу

Danil
16.03.2018
09:23:54
knp чем не устраивает?

Google
Konstantin
16.03.2018
09:24:22
Вадим
16.03.2018
09:24:22
сам понимаешь что все упирается в специфику твоего проекта
Если один тип пользователя, или одна табличка со всеми профилями, проблем какраз нет ) А вот проблема в разделении )

Danil
16.03.2018
09:24:52
кому?
на вопрос про udemy

Sergey
16.03.2018
09:25:09
Maxim
16.03.2018
09:25:14
На юдеми скидка 90%.

Danil
16.03.2018
09:26:26
у кнп можно бесплатно без видосов юзать текст

Vladislav
16.03.2018
09:27:47
или документацию юзать)))

Konstantin
16.03.2018
09:28:20
knplabs/knp-gaufrette-bundle мнения можно? )

Sergey
16.03.2018
09:29:02
Вадим
16.03.2018
09:29:03
что такое профиль и почему у тебя роли и профили это одно и то же?
Ну роль я туда прилел что б знать откуда тащить данные. Профиль, это доп инфа о юзере, а так как для каждого типа юзера нужна разная инфа, я думаю что ее надо разделить на несколько Entity. Например у менеджера, номер комнаты где он сидит, у админа номер телефона, а у кастомера адрес. И таким образом, мне после логина надо получить всю инфу по пользователю. В зависимости от типа. Я думал тут роль взять, как идентификатор, с какого репозитория инфу эту тянуть.

Maxim
16.03.2018
09:29:06
или документацию юзать)))
Ну по сути да. Все есть в доке.

Andrey
16.03.2018
09:29:19
1 же, инкапсуляция и все такое. Разделение внутри.
так. Мы видимо ушли в сторону. Идёт разговор о том, как сделать аналог джоина без джоина. Пока без выборки доп. таблицы (в результат), а только для фильтрации. Есть "основная" таблица, и "доп.". Тебе нужно выбрать данные из основной, используя фильтрацию из второй. Storage/Repository "доп." будет давать тебе согласно интерфейсу метод "find*Ids". В "основном" ты будешь его использовать. Я говорю о том, что "find*Ids" будет зачастую дубликатом по функционалу "find*", выдающий столько же строк, но с урезанным кол-вом полей

Konstantin
16.03.2018
09:29:31
Sergey
16.03.2018
09:30:19
Нет, не знаю .. один энтрипоинт )
у тебя у пользователя может быть только одна роль?

Вадим
16.03.2018
09:30:25

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