Я ищу подходящий способ уменьшить взаимосвязь в пакете обмена сообщениями, который я пишу для платформы Symfony2, чтобы я мог легко использовать его между приложениями.
Каждый экземпляр объекта Message должен иметь отправителя и получатель, instanceof Symfony \ Component \ Security \ Core \ User \ UserInterface
, который мне может потребоваться в установщиках свойств. Однако при настройке отношений ORM мне кажется, что я должен специально установить targetEntity ( Foo \ BarBundle \ Entity \ User
, например), что означает, что все дальнейшие использования объекта Message в разных приложения либо потребуют изменения кода, либо заставят их использовать сущность User, которая, как мне кажется, не входит в область действия пакета обмена сообщениями.
Какие-либо предложения / рекомендации по уменьшению связи в этом случае?
РЕДАКТИРОВАТЬ: Я попытался установить глобальный параметр с расширением и использовать его в аннотациях, например, @ORM \ ManyToOne (targetEntity = "% my.entity%")
, но кажется, что синтаксический анализатор аннотаций не преобразует параметры, потому что строка интерпретировалась как литерал, что, конечно, не удалось.