Exemple #1
0
 /**
  * Retourne un tableau représentant l'url passée par la barre d'adresses
  * Se base sur la table de routage
  * @return tableau représentant l'url
  * @exception RouteNotFoundException si l'uri n'est pas présente dans
  *          > la table de routage
  */
 public function buildWithRewriting()
 {
     $url = array();
     $uri = Minz_Request::getURI();
     $find = false;
     foreach ($this->routes as $route) {
         $regex = '*^' . $route['route'] . '$*';
         if (preg_match($regex, $uri, $matches)) {
             $url['c'] = $route['controller'];
             $url['a'] = $route['action'];
             $url['params'] = $this->getParams($route['params'], $matches);
             $find = true;
             break;
         }
     }
     if (!$find && $uri != '/') {
         throw new Minz_RouteNotFoundException($uri, Minz_Exception::ERROR);
     }
     // post-traitement
     $url = Minz_Url::checkUrl($url);
     return $url;
 }
Exemple #2
0
 /**
  * Relance une requête
  * @param $url l'url vers laquelle est relancée la requête
  * @param $redirect si vrai, force la redirection http
  *                > sinon, le dispatcher recharge en interne
  */
 public static function forward($url = array(), $redirect = false)
 {
     if (!is_array($url)) {
         header('Location: ' . $url);
         exit;
     }
     $url = Minz_Url::checkUrl($url);
     if ($redirect) {
         header('Location: ' . Minz_Url::display($url, 'php'));
         exit;
     } else {
         self::_controllerName($url['c']);
         self::_actionName($url['a']);
         self::_params(array_merge(self::$params, $url['params']));
         Minz_Dispatcher::reset();
     }
 }