2016-01-06 16:31:26 -08:00
< ? php
namespace Drupal\simpletest ;
use Drupal\Core\Routing\PreloadableRouteProviderInterface ;
use Symfony\Cmf\Component\Routing\PagedRouteProviderInterface ;
use Symfony\Component\HttpFoundation\Request ;
/**
* Rebuilds the router when the provider is instantiated .
2016-04-20 09:56:34 -07:00
*
* @ todo Move this outside of simpletest namespace to the Drupal\Tests , see
* https :// www . drupal . org / node / 2672762
2016-01-06 16:31:26 -08:00
*/
class RouteProvider implements PreloadableRouteProviderInterface , PagedRouteProviderInterface {
use \Drupal\Core\DependencyInjection\DependencySerializationTrait ;
/**
* Loads the real route provider from the container and rebuilds the router .
*
* @ return \Drupal\Core\Routing\PreloadableRouteProviderInterface | \Symfony\Cmf\Component\Routing\PagedRouteProviderInterface | \Symfony\Component\EventDispatcher\EventSubscriberInterface
* The route provider .
*/
protected function lazyLoadItself () {
if ( ! isset ( $this -> service )) {
$container = \Drupal :: getContainer ();
$this -> service = $container -> get ( 'simpletest.router.route_provider' );
$container -> get ( 'router.builder' ) -> rebuild ();
}
return $this -> service ;
}
/**
* { @ inheritdoc }
*/
public function getRouteCollectionForRequest ( Request $request ) {
return $this -> lazyLoadItself () -> getRouteCollectionForRequest ( $request );
}
/**
* { @ inheritdoc }
*/
public function getRouteByName ( $name ) {
return $this -> lazyLoadItself () -> getRouteByName ( $name );
}
/**
* { @ inheritdoc }
*/
public function preLoadRoutes ( $names ){
return $this -> lazyLoadItself () -> preLoadRoutes ( $names );
}
/**
* { @ inheritdoc }
*/
public function getRoutesByNames ( $names ) {
return $this -> lazyLoadItself () -> getRoutesByNames ( $names );
}
/**
* { @ inheritdoc }
*/
public function getCandidateOutlines ( array $parts ) {
return $this -> lazyLoadItself () -> getCandidateOutlines ( $parts );
}
/**
* { @ inheritdoc }
*/
public function getRoutesByPattern ( $pattern ) {
return $this -> lazyLoadItself () -> getRoutesByPattern ( $pattern );
}
/**
* { @ inheritdoc }
*/
public function routeProviderRouteCompare ( array $a , array $b ) {
return $this -> lazyLoadItself () -> routeProviderRouteCompare ( $a , $b );
}
/**
* { @ inheritdoc }
*/
public function getAllRoutes () {
return $this -> lazyLoadItself () -> getAllRoutes ();
}
/**
* { @ inheritdoc }
*/
public function reset () {
return $this -> lazyLoadItself () -> reset ();
}
/**
* { @ inheritdoc }
*/
public function getRoutesPaged ( $offset , $length = NULL ) {
return $this -> lazyLoadItself () -> getRoutesPaged ( $offset , $length );
}
/**
* { @ inheritdoc }
*/
public function getRoutesCount () {
return $this -> lazyLoadItself () -> getRoutesCount ();
}
}