getCurrentItemsPerPage(), $this->getCurrentPageNumber(), $route ?? $this->getCurrentRoute(), $routeParameters ?? $this->getCurrentRouteParameters(), $this->router, self::DEFAULT_CURRENT_PAGE_KEY, self::DEFAULT_ITEM_PER_NUMBER_KEY ); } public function getCurrentItemsPerPage(): int { return $this->requestStack ->getCurrentRequest() ->query ->getInt(self::DEFAULT_ITEM_PER_NUMBER_KEY, $this->itemPerPage); } public function getCurrentPageFirstItemNumber(): int { return ($this->getCurrentPageNumber() - 1) * $this->getCurrentItemsPerPage(); } public function getCurrentPageNumber(): int { return $this->requestStack ->getCurrentRequest() ->query ->getInt(self::DEFAULT_CURRENT_PAGE_KEY, self::DEFAULT_PAGE_NUMBER); } private function getCurrentRoute() { $request = $this->requestStack->getCurrentRequest(); return $request->get('_route'); } private function getCurrentRouteParameters() { return array_merge( $this->router->getContext()->getParameters(), // get the route parameters $this->requestStack ->getCurrentRequest() ->attributes->get('_route_params'), // get the query parameters $this->requestStack ->getCurrentRequest()->query->all() ); } }