Example #1
0
 protected function route(Router $router, $uri, array $extraVariables = [])
 {
     $router->route($uri);
     $theRule =& $router->getTheRule();
     $theRule[$router::RULE_VARIABLES]['test'] = $this;
     foreach ($extraVariables as $name => $value) {
         $theRule[$router::RULE_VARIABLES][$name] = $value;
     }
     return $router;
 }
Example #2
0
 /**
  * Dispatch a router rule.
  *
  * @param   \Hoa\Router         $router    Router.
  * @param   \Hoa\View\Viewable  $view      View.
  * @return  mixed
  * @throws  \Hoa\Controller\Exception
  */
 public function dispatch(Router $router, View\Viewable $view = null)
 {
     $rule = $router->getTheRule();
     if (null === $rule) {
         $router->route();
         $rule = $router->getTheRule();
     }
     if (null === $view) {
         $view = $this->_currentView;
     } else {
         $this->_currentView = $view;
     }
     $parameters = $this->_parameters;
     $this->_parameters = clone $this->_parameters;
     foreach ($rule[Router::RULE_VARIABLES] as $key => $value) {
         $this->_parameters->setParameter('variables.' . $key, $value);
     }
     $out = $this->resolve($rule, $router, $view);
     unset($this->_parameters);
     $this->_parameters = $parameters;
     return $out;
 }