Как уменьшить дублирование кода в Symfony2

У меня есть 3 «основных» лица: Наберите «А а также TypeB связано с пользователь отношением ManyToOne.

У меня есть 2 «второстепенных» лица: UserTypeA а также UserTypeB, которые содержат атрибуты отношений ManyToOne (например, комментарий, который пользователь назначил продукту типа A). Эти два объекта и их хранилище похожи (за исключением того, что один связан с TypeA, а другой — с TypeB).

Вот часть моего кода:

public function typea_commentAction(TypeA $typea)
{
$user = $this->getUser();
$userTypeA = $this->getDoctrine()
->getManager()
->getRepository('GamUserBundle:UserTypeA')
->getComment($user, $typea);

//...
}

public function typeb_commentAction(TypeB $typeb)
{
$user = $this->getUser();
$userTypeB = $this->getDoctrine()
->getManager()
->getRepository('GamUserBundle:UserTypeB')
->getComment($user, $typeb);

//...
}

Как видите, мне нужно продублировать каждое действие, чтобы они работали с каждой сущностью. Есть ли способ совместить эти действия? Тот же вопрос о вторичных объектах и ​​их хранилищах.

Благодарю.

2

Решение

Создайте класс обслуживания, который выполняет логику и принимает, скажем, пользовательский тип в качестве параметра.

3

Другие решения

Других решений пока нет …