@gitdev

Что нужно выносить в сервисы при работе с Symfony?

Например такой код. Что из этого кода следовало бы вынести в сервис
public function new(Request $request): Response
    {
        $vacancy = new Vacancy();
        $form = $this->createForm(VacancyType::class, $vacancy);
        $form->handleRequest($request);

        if ($form->isSubmitted() && $form->isValid()) {
            $entityManager = $this->getDoctrine()->getManager();
            $vacancy->setUser($this->getUser());
            $entityManager->persist($vacancy);
            $entityManager->flush();

            return $this->redirectToRoute('vacancy_index');
        }

        return $this->render('vacancy/new.html.twig', [
            'vacancy' => $vacancy,
            'form' => $form->createView(),
        ]);
    }
  • Вопрос задан
  • 109 просмотров
Пригласить эксперта
Ответы на вопрос 1
@sidni
Php Developer
В целом слишком маленький пример, чтоб что-то посоветовать
1) Форма напрямую работающая с сущностью плохая затея требующая прописывать не нужные геттеры и сеттеры энтити, сложно проверить инварианты сущности и есть большая вероятность сделать объект сущности не валидным что противоречит благим принципам
2) сделать сервис создания сущностей типо фабрики (в целом если лень заморачиваться можно это дело спихнуть на репозиторий)
3) Сетить юзера на вакансию тоже можно вынести в отдельный сервис
4) сохранять вакансию можно тоже в репозитории
5) флаш так же можно вызывать из отдельного сервиса (Flusher)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы