Вот довольно специфический вопрос о хороших / плохих практиках Symfony.Моя проблема в том, что в зависимости от класса объекта у меня разные логики для одного и того же действия.У меня вопрос: можно ли реализовать шаблон проектирования посетителей и передать службу Symfony в качестве параметра метода сущностей?
Пример:
/**
* Some service
*/
class Visitor {
public function visitA(EntityA $entity)
{
... some logic ...
}
public function visitB(EntityB $entity)
{
... some different logic ...
}
}
/**
* @ORM\Entity
*/
class EntityA
{
public function accept(Visitor $visitor)
{
$visitor->visitA($this);
}
}
/**
* @ORM\Entity
*/
class EntityB
{
public function accept(Visitor $visitor)
{
$visitor->visitB($this);
}
}
Мой вопрос просто и просто узнатьесли такая структура будет хорошей практикой в Symfony?Поскольку представляется более естественным, что субъекты не должны знать об услугах ... А если нет, то каким будет приемлемый обходной путь?