private function createRouteGenerator($options = array())
    {
        $options = array_replace(array(
                'routeName'     => null,
                'routeParams'   => array(),
                'pageParameter' => '[page]',
            ), $options);

        $router = $this->container->get('router');

        if (null === $options['routeName']) {
            $request = $this->container->get('request');

            $options['routeName'] = $request->attributes->get('_route');
            if ('_internal' === $options['routeName']) {
                throw new \Exception('PagerfantaBundle can not guess the route when used in a subrequest');
            }
            
            // make sure we read the route parameters from the passed option array            
            $defaultRouteParams = array_merge($request->query->all(), $request->attributes->get('_route_params'));

            if (array_key_exists('routeParams', $options)) {
                $options['routeParams'] = array_merge($defaultRouteParams, $options['routeParams']);
            } else {
                $options['routeParams'] = $defaultRouteParams;
            }   
        }

        $routeName = $options['routeName'];
        $routeParams = $options['routeParams'];
        $pagePropertyPath = new PropertyPath($options['pageParameter']);

        return function($page) use($router, $routeName, $routeParams, $pagePropertyPath) {
            $propertyAccessor = PropertyAccess::getPropertyAccessor();
            $propertyAccessor->setValue($routeParams, $pagePropertyPath, $page);

            return $router->generate($routeName, $routeParams);
        };
    }
private function createRouteGenerator($options = array())
    {
        $options = array_replace(array(
                'routeName'     => null,
                'routeParams'   => array(),
                'pageParameter' => '[page]',
            ), $options);

        $router = $this->container->get('router');

        if (null === $options['routeName']) {
            $request = $this->container->get('request');

            $options['routeName'] = $request->attributes->get('_route');
            if ('_internal' === $options['routeName']) {
                throw new \Exception('PagerfantaBundle can not guess the route when used in a subrequest');
            }
            
            // make sure we read the route parameters from the passed option array            
            $defaultRouteParams = array_merge($request->query->all(), $request->attributes->get('_route_params'));

            if (array_key_exists('routeParams', $options)) {
                $options['routeParams'] = array_merge($defaultRouteParams, $options['routeParams']);
            } else {
                $options['routeParams'] = $defaultRouteParams;
            }   
        }

        $routeName = $options['routeName'];
        $routeParams = $options['routeParams'];
        $pagePropertyPath = new PropertyPath($options['pageParameter']);

        return function($page) use($router, $routeName, $routeParams, $pagePropertyPath) {
            $propertyAccessor = PropertyAccess::getPropertyAccessor();
            $propertyAccessor->setValue($routeParams, $pagePropertyPath, $page);

            return $router->generate($routeName, $routeParams);
        };
    }
private function createRouteGenerator ( $ options = array ( ) ) { $ options = array_replace ( array ( 'routeName' => null , 'routeParams' => array ( ) , 'pageParameter' => '[page]' , ) , $ options ) ; $ router = $ this -> container -> get ( 'router' ) ; if ( null === $ options [ 'routeName' ] ) { $ request = $ this -> container -> get ( 'request' ) ; $ options [ 'routeName' ] = $ request -> attributes -> get ( '_route' ) ; if ( '_internal' === $ options [ 'routeName' ] ) { throw new \ Exception ( 'PagerfantaBundle can not guess the route when used in a subrequest' ) ; } // make sure we read the route parameters from the passed option array             $ defaultRouteParams = array_merge ( $ request -> query -> all ( ) , $ request -> attributes -> get ( '_route_params' ) ) ; if ( array_key_exists ( 'routeParams' , $ options ) ) { $ options [ 'routeParams' ] = array_merge ( $ defaultRouteParams , $ options [ 'routeParams' ] ) ; } else { $ options [ 'routeParams' ] = $ defaultRouteParams ; } } $ routeName = $ options [ 'routeName' ] ; $ routeParams = $ options [ 'routeParams' ] ; $ pagePropertyPath = new PropertyPath ( $ options [ 'pageParameter' ] ) ; return function ( $ page ) use ( $ router , $ routeName , $ routeParams , $ pagePropertyPath ) { $ propertyAccessor = PropertyAccess :: getPropertyAccessor ( ) ; $ propertyAccessor -> setValue ( $ routeParams , $ pagePropertyPath , $ page ) ; return $ router -> generate ( $ routeName , $ routeParams ) ; } ; }
Creates an anonymous function which returns the URL for a given page.

@param array $options

@return callable

@throws \Exception
Creates an anonymous function which returns the URL for a given page .