Идея этого здесь в том, чтобы дать пути для достижения парадигмы DDD.
Я не хочу скрывать ответ @magnusnordlander, я буду применять то, что он говорит.
Вотнекоторые наблюдения по этому вопросу:
Я думаю, что у самой сущности не должно быть всего.Это точно не то, что люди DDD сказали бы так или иначе.Сущность [Doctrine2] должна заботиться только о отношениях ( сущности с другими вариациями <= Это на самом деле то, что я застрял на некоторое время) и <a href="http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/cookbook/aggregate-fields.html" rel="nofollow"> Совокупный корень .
Сущность Доктрины должна знать только о том, как работать с собой.
Но, чтобы получить данные или работать с ними, есть и другие вещи, которые вы можете использовать:
Репозиторий
Это то, что предоставляет помощникичтобы получить ваши более сложные искатели, чем то, что сделал бы быстрый findBy(array('id'=>$idvalue))
(и что сущность / Ассоциация / Аннотация не может охватить), и это действительно отличныйвещь, чтобы иметь под рукой.
Я лично пытался построить все запросы и понял, что EntityManager уже очень хорош, из коробки. В большинстве случаев, на мой взгляд : если вы можете / не можете / использовать запрос или построитель запросов, тем лучше.
Бизнес-логика во всем этом ...
Последнее, что следует заметить, то, что вы будете искать, - это, в основном, разбавление контроллера.
FooManager (например) - это где (если я не ошибаюсь)бизнес-логика идет.
Я нашел золотую жилу информации по этому вопросу в этом блоге , которая охватывает:
Если у вас есть какие-либо идеи, для дополнения, я задаю этот ответ в качестве вики сообщества