Некоторая доменная логика хороша, если она применяется к самой сущности.Например, следующие вещи хороши:
class myEntity {
// ...
/**
* @OneToMany(targetEntity="LineItem")
*/
protected $items;
public function equals($otherEntity){
//compare $this->lineItems and $otherEntity->lineItems, and return true if
//they are identical
}
/**
* More business logic internal to an entity.
*/
public function subtotal(){
$total = 0;
foreach($this->items as $i) $total += $i;
return $i;
}
}
То, что вы не хотите в субъектах, это вещи с побочными эффектами вне этой сущности (или сущностей, которыми она владеет), данные-постоянство (сущности никогда не должны знать о EntityManager или Repositories и т. д.).
Мое правило заключается в том, чтобы почти всегда избегать наличия у моих сущностей каких-либо зависимостей (кроме связанных классов сущностей).Если вдруг мне понадобится что-то сложное, я знаю, что пришло время перенести логику из сущности в класс обслуживания.