コード例 #1
0
ファイル: Dispatcher.php プロジェクト: nlevee/php-libs
 /**
  * On lance le dispatch de la requete avec les routes inséré
  * @param Response $response
  * @return bool
  */
 public function perform(\Router\Response $response)
 {
     // ajout de la route global si existe
     $aApplyRoute = $this->routes['ANY'];
     if (isset($this->routes[$this->method])) {
         $aApplyRoute = array_merge($this->routes[$this->method], $aApplyRoute);
     }
     if (!empty($aApplyRoute)) {
         require_once __DIR__ . "/Route.php";
         foreach ($aApplyRoute as $route) {
             // récuperation des params de la route et creation de l'objet pour test
             list($pattern_uri, $callback, $filters) = $route;
             $oRoute = new \Router\Route($pattern_uri, array_merge($this->filters, $filters));
             if (false === ($params = $oRoute->match($this->request->getRequestUri()))) {
                 continue;
             }
             // insert des params dans le request
             foreach ($params as $key => $value) {
                 $this->request->setParam($key, $value);
             }
             // appel du callback si c'est possible
             if (is_callable($callback) === true) {
                 ob_start();
                 call_user_func_array($callback, array($this->request, $response));
                 $response->appendBody(ob_get_contents());
                 ob_end_clean();
             }
             return true;
         }
         unset($oRoute);
     }
     // renvoi false si aucune regle n'est passé
     return false;
 }
コード例 #2
0
ファイル: App.php プロジェクト: nlevee/php-libs
 /**
  * Cette fonction est lancé par le routeur et permet de lancer l'action qui convient
  * selon les paramètre recu dans $request
  * @param \Router\Request $request
  * @param \Router\Response $response
  * @return mixed
  */
 public function dispatch(Router\Request $request, Router\Response $response)
 {
     $sControllerName = $request->getParam('controller', $this->default['controller']);
     $sActionName = $request->getParam('action', $this->default['action']);
     // appel de l'action requise
     $output = $this->launch($sControllerName, $sActionName, array($request, $response));
     // ajout du contenu dans le body de la response
     $response->appendBody($output);
     return $output;
 }