public function search(Context $context) { $criteria = []; $q = $context->getQueryParams(); foreach ($q as $key => $value) { if ('!' !== substr($key, 0, 1)) { $criteria[$key] = $value; } } $entries = $this->getCollection($context)->find($criteria); if (isset($q['!sort'])) { $entries->sort($q['!sort']); } if (isset($q['!skip'])) { $entries->skip($q['!skip']); } if (isset($q['!limit'])) { $entries->limit($q['!limit']); } return ['entries' => $entries]; }