Size: a a a

2021 July 22

VM

Volodymyr Melko in symfony
1. это дока самой доктрины, а не симфы. Она позволяет наконфигурить несколько ЕМ
2.Чтоб достать нужный ЕМ - нужно делать
Doctrine\Persistence\ManagerRegistry::getManager($managerName);

3. Ты не хочешь юзать интерфейс ManagerRegistry, а хочешь сразу внедрить сервис, но это вопрос к DI и он дает тебе возможность делать это по разному
источник

VM

Volodymyr Melko in symfony
в доке по DI как раз и говорится о том, как работать с несколькими реализациями одного интерфейса =)
источник

G[

GamIet [UA, Odessa] in symfony
Та вот же дока симы: https://symfony.com/doc/current/doctrine/multiple_entity_managers.html
Только они там пропогандируют быдлокод, аля "фигачте всё в контроллеры и будем вам счастье")))
источник

VM

Volodymyr Melko in symfony
ладно, это конфигурация доктрины для работы в симфо-приложухе
но она в любом случае рассказывает о том ,как сконфигурировать доктрину, а не как с ней потом работать

раньше в доке точно было упоминание о том, что симфа нарегает тебе сервисов пачку с префиксом в виде названия ентити менеджера и ты можешь доставать их по этим именам. Тогда еще небыло автовайринга и все сервисы описывались явно
потому писали типа
some_service:
   class: App\Services\MyService
   arguments:
      - '@doctrine.orm.custom_entity_manager'


ну и проблем небыло никаких =)
источник

G[

GamIet [UA, Odessa] in symfony
Да, у меня монолит как раз написан на старой доброй 3.4 вот с эти вот макаронами конфигов для каждого класса...
источник

VM

Volodymyr Melko in symfony
и кстати, в той же доке, где предлагают наследоваться от базового контроллера, птом достают ЕМ в контроллере вот так
$this->getDoctrine()->getEntityManager()

так вот getDoctrine возвращает тот самый интерфейс Doctrine\Persistence\ManagerRegistry
а значит можно достать любой ЕМ вот так
$this->getDoctrine()->getEntityManager($emName)
, просто по дефолту если не передать имя, то будет тот, что дефолтный
источник

VM

Volodymyr Melko in symfony
ну или хотябы посмотреть что в контейнере валяется и увидеть как они зареганы там =)
источник

VM

Volodymyr Melko in symfony
короче не в доке дело.. в доке не напишут как сделать твое кастомное приложение, там только описаны инструменты фреймворка
источник

✨Basic_Instinct✨ in symfony
парни, дайте совет как реализовать ленту из разных entity с разной структурой еще и с пагинацией
источник

✨Basic_Instinct✨ in symfony
чтоб не сильно больно было)
источник

VM

Volodymyr Melko in symfony
храни в редисе сортед сет, где скором будет дата создания или по чему ты там сортируешь
сначала з редиса одним запросом получаешь пачку идентификаторов (составных вида type+id)
потом из базк по айдишкам достаешь свои сущности и сортируешь в том же порядке, что отдал редис
источник

✨Basic_Instinct✨ in symfony
ну я что-то подобное и думаю, только ..
источник

✨Basic_Instinct✨ in symfony
пока мыслю так... имея ulid сделать union, получив только id с меткой сущности
источник

✨Basic_Instinct✨ in symfony
потом получаем по id все записи, и склеиваем
источник

VM

Volodymyr Melko in symfony
ну и в чем тогда вопрос?
источник

✨Basic_Instinct✨ in symfony
уперлась в пагинацию, что-то мысли не сходятся
источник

✨Basic_Instinct✨ in symfony
в проекте KnpPaginator
источник

✨Basic_Instinct✨ in symfony
простой массив я ему не скормлю
источник

VM

Volodymyr Melko in symfony
если ты хочешь без редиса, то будет как-то так

э... ну тут библиотечный пагинатор врятли подойдет
источник

✨Basic_Instinct✨ in symfony
хотя можно попробовать скормить объект из union
источник