/** * Add chain routes from a config route * * @param string $name * @param \Zend\Controller\Router\Route $route * @param \Zend\Config\Config $childRoutesInfo * @return void */ protected function _addChainRoutesFromConfig($name, Route $route, Config\Config $childRoutesInfo) { foreach ($childRoutesInfo as $childRouteName => $childRouteInfo) { if (is_string($childRouteInfo)) { $childRouteName = $childRouteInfo; $childRoute = $this->getRoute($childRouteName); } else { $childRoute = $this->_getRouteFromConfig($childRouteInfo); } if ($route instanceof Route\Chain) { $chainRoute = clone $route; $chainRoute->addChain($childRoute); } else { $chainRoute = $route->addChain($childRoute); } $chainName = $name . $this->_chainNameSeparator . $childRouteName; if (isset($childRouteInfo->chains)) { $this->_addChainRoutesFromConfig($chainName, $chainRoute, $childRouteInfo->chains); } else { $this->addRoute($chainName, $chainRoute); } } }