/** * @param PagingInfo $pagingMetadata * @return string */ public function createPagingLinks(PagingInfo $pagingMetadata) { $context = $this->provider->getContext(); $params = $this->reconstructQueryParams($context, $pagingMetadata->getPagingConfig()); $links = array(); $pathInfo = $context->getPathInfo(); $relations = array('first', 'last', 'next', 'previous'); foreach ($relations as $relation) { $method = sprintf('get%sPage', ucfirst($relation)); $result = call_user_func(array($pagingMetadata, $method)); if ($result > 0) { $params['page'] = sprintf('page=%d', $result); $links[] = sprintf('<%s>; rel="%s"', $context->getUriForPath($pathInfo . '?' . join('&', array_values($params))), $relation); } } $linksString = join(', ', $links); return $linksString; }