Slide 33
Slide 33 text
Astuce 3 : organiser ses repositories...
class ArticleRepository
{
public function findOnlineArticlesIWroteOnBlog(User $user, Blog $blog)
{
$queryBuilder = $this->createQueryBuilder('a');
self::withIsOnline($queryBuilder, 'a');
self::withIWrote($queryBuilder, 'a', $user);
self::withFromBlog($queryBuilder, 'a', $blog);
return $queryBuilder->getQuery()->getResult();
}
private static function withIsOnline(QueryBuilder $queryBuilder, string $alias)
{
$queryBuilder
->andWhere($alias.'.status != \'draft\'')
->andWhere($alias.'.publishOn >= CURRENT_TIMESTAMP()')
;
}
// withIWrote(), withFromBlog(), etc
}