После прочтения нескольких других вопросов похоже, что не рекомендуется, чтобы класс сущностей использовал Репозиторий. Итак, учитывая эти хранилища:
class RestaurantRepository {
public function findAll() { ... }
}
class ReviewRepository {
public function findByRestaurant(Restaurant $restaurant) { ... }
}
Я не должен делать это в моем классе:
class Restaurant {
public function getReviews() {
// ...
return $restaurantRepository->findByRestaurant($this);
}
}
Buts, скажем, у меня есть этот контроллер, который дает список ресторанов для просмотра:
class IndexController {
public function indexAction() {
$restaurants = $restaurantRepository->findAll();
$this->view->restaurants = $restaurants;
}
}
Какая «хорошая практика» - получать отзывы о каждом ресторане в сценарии просмотра? Поэтому я не могу сделать это:
foreach ($this->restaurants as $restaurant) {
$reviews = $restaurant->getReviews();
}
И я полагаю, что внедрение ReviewRepository в представление - это не то, что мы также можем назвать "наилучшей практикой" ...
Любой комментарий приветствуется!