/** * Add chain routes from a config route * * @param string $name * @param Zend_Controller_Router_Route_Interface $route * @param Zend_Config $childRoutesInfo * @return void */ protected function _addChainRoutesFromConfig($name, Zend_Controller_Router_Route_Interface $route, Zend_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 Zend_Controller_Router_Route_Chain) { $chainRoute = clone $route; $chainRoute->chain($childRoute); } else { $chainRoute = $route->chain($childRoute); } $chainName = $childRouteName; if (isset($childRouteInfo->chains)) { $this->_addChainRoutesFromConfig($chainName, $chainRoute, $childRouteInfo->chains); } else { $this->addRoute($chainName, $chainRoute); } } }
/** * Add chain routes from a config route * * @todo Add recursive chaining (not required yet, but later when path * route chaining is done) * * @param string $name * @param Zend_Controller_Router_Route_Interface $route * @param Zend_Config $childRoutesInfo * @return void */ protected function _addChainRoutesFromConfig($name, Zend_Controller_Router_Route_Interface $route, Zend_Config $childRoutesInfo) { foreach ($childRoutesInfo as $childRouteName => $childRouteInfo) { $childRoute = $this->_getRouteFromConfig($childRouteInfo); $chainRoute = $route->chain($childRoute); $chainName = $name . '-' . $childRouteName; $this->addRoute($chainName, $chainRoute); } }