getParams(); $params['published'] = ArticleModel::PUBLISH_PENDING; $params['deleted'] = 0; $sort = $pagerQuery->getSort(); $page = $pagerQuery->getPage(); $limit = $pagerQuery->getLimit(); $articleRepo = new ArticleRepo(); $pager = $articleRepo->paginate($params, $sort, $page, $limit); return $this->handleArticles($pager); } protected function handleArticles($pager) { if ($pager->total_items > 0) { $builder = new ArticleListBuilder(); $items = $pager->items->toArray(); $pipeA = $builder->handleArticles($items); $pipeB = $builder->handleCategories($pipeA); $pipeC = $builder->handleUsers($pipeB); $pipeD = $builder->objects($pipeC); $pager->items = $pipeD; } return $pager; } }