Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
83.33% |
10 / 12 |
CRAP | |
89.47% |
17 / 19 |
| CurrentRouteMatch | |
0.00% |
0 / 1 |
|
83.33% |
10 / 12 |
14.23 | |
89.47% |
17 / 19 |
| __construct | |
100.00% |
1 / 1 |
1 | |
100.00% |
3 / 3 |
|||
| getRouteName | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| getRouteObject | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| getParameter | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| getParameters | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| getRawParameter | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| getRawParameters | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| getCurrentRouteMatch | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| getRouteMatch | |
100.00% |
1 / 1 |
3 | |
100.00% |
6 / 6 |
|||
| getMasterRouteMatch | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
| getParentRouteMatch | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
| getRouteMatchFromRequest | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| <?php | |
| /** | |
| * @file | |
| * Contains \Drupal\Core\Routing\CurrentRouteMatch. | |
| */ | |
| namespace Drupal\Core\Routing; | |
| use Symfony\Component\HttpFoundation\Request; | |
| use Symfony\Component\HttpFoundation\RequestStack; | |
| /** | |
| * Default object for current_route_match service. | |
| */ | |
| class CurrentRouteMatch implements RouteMatchInterface, StackedRouteMatchInterface { | |
| /** | |
| * The related request stack. | |
| * | |
| * @var \Symfony\Component\HttpFoundation\RequestStack | |
| */ | |
| protected $requestStack; | |
| /** | |
| * Internal cache of RouteMatch objects. | |
| * | |
| * @var \SplObjectStorage | |
| */ | |
| protected $routeMatches; | |
| /** | |
| * Constructs a CurrentRouteMatch object. | |
| * | |
| * @param \Symfony\Component\HttpFoundation\RequestStack $request_stack | |
| * The request stack. | |
| */ | |
| public function __construct(RequestStack $request_stack) { | |
| $this->requestStack = $request_stack; | |
| $this->routeMatches = new \SplObjectStorage(); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function getRouteName() { | |
| return $this->getCurrentRouteMatch()->getRouteName(); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function getRouteObject() { | |
| return $this->getCurrentRouteMatch()->getRouteObject(); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function getParameter($parameter_name) { | |
| return $this->getCurrentRouteMatch()->getParameter($parameter_name); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function getParameters() { | |
| return $this->getCurrentRouteMatch()->getParameters(); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function getRawParameter($parameter_name) { | |
| return $this->getCurrentRouteMatch()->getRawParameter($parameter_name); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function getRawParameters() { | |
| return $this->getCurrentRouteMatch()->getRawParameters(); | |
| } | |
| /** | |
| * Returns the route match for the current request. | |
| * | |
| * @return \Drupal\Core\Routing\RouteMatchInterface | |
| * The current route match object. | |
| */ | |
| public function getCurrentRouteMatch() { | |
| return $this->getRouteMatch($this->requestStack->getCurrentRequest()); | |
| } | |
| /** | |
| * Returns the route match for a passed in request. | |
| * | |
| * @param \Symfony\Component\HttpFoundation\Request $request | |
| * A request object. | |
| * | |
| * @return \Drupal\Core\Routing\RouteMatchInterface | |
| * A route match object created from the request. | |
| */ | |
| protected function getRouteMatch(Request $request) { | |
| if (isset($this->routeMatches[$request])) { | |
| $route_match = $this->routeMatches[$request]; | |
| } | |
| else { | |
| $route_match = RouteMatch::createFromRequest($request); | |
| // Since getRouteMatch() might be invoked both before and after routing | |
| // is completed, only statically cache the route match after there's a | |
| // matched route. | |
| if ($route_match->getRouteObject()) { | |
| $this->routeMatches[$request] = $route_match; | |
| } | |
| } | |
| return $route_match; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function getMasterRouteMatch() { | |
| return $this->getRouteMatch($this->requestStack->getMasterRequest()); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function getParentRouteMatch() { | |
| return $this->getRouteMatch($this->requestStack->getParentRequest()); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function getRouteMatchFromRequest(Request $request) { | |
| return $this->getRouteMatch($request); | |
| } | |
| } |