Example #1
0
 /**
  * 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);
         }
     }
 }