Задать вопрос
@redguard

Оправданно ли использование doctrine в хелпер классе symfony 3?

Хочу писать написать функцию которая достает записи из бд по id. И потом использовать ее во всех контроллерах. Собираюсь разместить эту функцию в хелпер классе который будет находиться тут AppBundle\Utils; Но моя функция в хелпере (Вернее даже весь хелпер класс) не будет иметь сразу доступа к doctrine.
Вот что пишут на stackoverflow:
The problem here is that your Helper class is not container-aware; that is, it has no idea about all the services Symfony has loaded

that you're injecting the entire service container into the Helper class. That's not a best practice -- you should only inject what you need


Оправданно ли использование doctrine в хелпер классе symfony 3?
Как правильно разметить такую функцию? В контроллере?
И как понимать вот это "container-aware"?:) Перевести то перевел но понять не могу
  • Вопрос задан
  • 363 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
banderos120
@banderos120
Играю на балалайке
Используйте свой класс Repository, в конструктор которого пихайте EntityManager, далее уже ваши сервисы смогут иметь доступ к этому репозиторию. Так вы изолируете доктрину.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
container-aware - знает про контейнер и может работать с ним, чего по хорошему оно не должно уметь делать.

Хочу писать написать функцию которая достает записи из бд по id.


Записи из БД или сущности? Это вопервых весьма большая разница, а во вторых уже же есть старый добрый $em->find(Entity::class, $id), парам конвертеры дефолтные и т.д

функцию в хелпер классе который будет находиться тут AppBundle\Utils


Вообще это весьма плохая идея. И про то что будет глобальная функция которая этим будет заниматься, и то что вы ее как статику в класс запихаете а не сервис сделаете, и то что Utils... это называется "мне было лень придумывать адекватное название".
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
30 янв. 2025, в 16:41
3000 руб./за проект
30 янв. 2025, в 16:19
19000 руб./за проект