假设我们在存储库中有2种方法:
public function findByMonth($month) {
// ... DQL query to the database
}
public function findByYear($year)
$year = ... ;
$result = [];
for (...) {
$month = ... ;
$result[] = $this->findByMonth($month);
}
return $result;
}
第二种方法不执行对数据库的查询。它仅调用第一个方法并创建循环和一些逻辑调整。
应该保留在Repository
中还是应该将其放入服务(Formatter
?Manager
?)
答案 0 :(得分:3)
存储库是一种模式,表示处理应用程序和数据源之间的通信的体系结构层。
我认为您需要将findByYear
函数移到调用存储库方法的服务中。
赞:
class YourService
{
private $repository;
public function __construct(YourRepository $repository)
{
$this->repository = $repository;
}
public function findByYear($year)
{
$year = ... ;
$result = [];
for (...) {
$month = ... ;
$result[] = $this->repository->findByMonth($month);
}
return $result;
}
}