У меня есть класс DashboardService (определенный как служба в symfony2), я использую его для вызова некоторых методов для получения результатов (только запросов) из некоторых репозиториев и отображения данных.
class DashboardService {
/**
* @var EntityManager
*/
private $em;
public function __construct(EntityManager $em) {
$this->em = $em;
}
public function getTotalActiveCampaignsByMonth($month) {
$campaigns = $this->em->getRepository("WMAdminBundle:Campaign")->countAllActiveCampaignsByMonth($month);
return $campaigns;
}
public function getTotalContactsByMonth($month) {
$contacts = $this->em->getRepository("WMAdminBundle:Contact")->countAllContactsSentByMonth($month);
return $contacts;
}
public function getTotalCAByMonth($month) {
$ca = $this->em->getRepository("WMAdminBundle:ContactCampaign")->getAllCAByMonth($month);
return $ca;
}
public function getTop10RentabilityCampaigns() {
$campaigns = $this->em->getRepository("WMAdminBundle:Campaign")->findAllTop10Rentability();
return $campaigns;
}
public function getTop10ContactCampaigns() {
$campaigns = $this->em->getRepository("WMAdminBundle:Campaign")->findAllTop10Contacts();
return $campaigns;
}
}
Является ли этот класс шаблоном ООП или чем-то еще?
он похож на базовую службу приложений в типичной многоуровневой архитектуре.
Службы приложений: используются внешними потребителями для общения с вашей системой (думаю, веб-службы). Если потребителям нужен доступ к операциям CRUD, они будут раскрыты здесь.
$this->get("dashboard")-> getTotalActiveCampaignsByMonth($month);
или предпочтительнее сделать это непосредственно в контроллере:$this->em->getRepository("WMAdminBundle:Campaign")->countAllActiveCampaignsByMonth($month);
и удалить мой класс обслуживания?