/** * Merge parameters from another match. * * @param self $match * @return self */ public function merge(self $match) { $this->params = array_merge($this->params, $match->getParams()); $this->length += $match->getLength(); $this->matchedRouteName = $match->getMatchedRouteName(); return $this; }
public function testMatchedRouteNameIsOverridenOnMerge() { $match = new RouteMatch(array()); $match->setMatchedRouteName('foo'); $subMatch = new RouteMatch(array()); $subMatch->setMatchedRouteName('bar'); $match->merge($subMatch); $this->assertEquals('bar', $match->getMatchedRouteName()); }
/** * @return array */ private function prepareParamsAndRouteName() { // default $params and $routeName $params = []; $routeName = 'home'; // when error occurred (404) we don't have routeMatch if ($this->routeMatch) { $params = $this->routeMatch->getParams(); if ($params['action'] === 'index') { unset($params['action']); } $params['controller'] = $params['__CONTROLLER__']; if ($params['controller'] === 'index') { unset($params['controller']); } $routeName = $this->routeMatch->getMatchedRouteName(); unset($params['__NAMESPACE__']); unset($params['__CONTROLLER__']); } return [$params, $routeName]; }