Я работаю над своим собственным ORM с классами Entity и EntityRepository
В любом ORM, в котором я исследовал внедрение любых служб в Entities, действительно плохая идея.Но возникает вопрос: стоит ли внедрять сервис в репозиторий?
Есть абстрактный пример:
//$user is object of Entity class in ORM
//we need to get actual valid entities here
$relatedEntities = $user->getRelatedEntities();
//where getRelatedEntities() calls method of RelatedEntityRepository
RelatedEntityRepository {
private $injectedService;
public function getByUserId($userId){
if(!$this->injectedService->hasValidUserData($userId)){
$this->injectedService->doSomething($userId);
}
return $this->getFromDbByUserId($userId)
}
private function getFromDbByUserId($userId){
//returns data from DB
}
}