public function getByYear(Journal $journal, $withFutureIssues = false)
{
$query = $this->createQueryBuilder('issue')->select('issue')->where('issue.journal = :journal')->andWhere('issue.published = true')->setParameter('journal', $journal)->orderBy('issue.datePublished', 'DESC');
if (!$withFutureIssues) {
$query->andWhere('issue.inPress = false');
}
$query = $query->getQuery();
$years = [];
/** @var Issue $issue */
foreach ($query->getResult() as $issue) {
if ($issue->getYear() !== null) {
$years[$issue->getYear()->format('Y')][] = $issue;
}
}
ksort($years);
return array_reverse($years, true);
}