Esempio n. 1
0
 /**
  * répresente le classe Request
  *
  * @return Request
  */
 function request()
 {
     return Request::configure();
 }
Esempio n. 2
0
 /**
  * Lanceur de l'application
  *
  * @param callable|null $cb
  *
  * @return mixed
  */
 public function run($cb = null)
 {
     if (php_sapi_name() == 'cli') {
         return true;
     }
     // Ajout de l'entête X-Powered-By
     if (!$this->disableXpoweredBy) {
         $this->response->addHeader('X-Powered-By', 'Bow Framework');
     }
     // drapeaux d'erreur.
     $error = true;
     if (is_callable($cb)) {
         if (call_user_func_array($cb, [$this->request])) {
             die;
         }
     }
     $this->branch = '';
     $method = $this->request->method();
     // vérification de l'existance d'une methode spécial
     // de type DELETE, PUT
     if ($method == 'POST') {
         if ($this->specialMethod !== null) {
             $method = $this->specialMethod;
         }
     }
     // vérification de l'existance de methode de la requete dans
     // la collection de route
     if (isset(static::$routes[$method])) {
         foreach (static::$routes[$method] as $key => $route) {
             // route doit être une instance de Route
             if (!$route instanceof Route) {
                 continue;
             }
             // récupération du contenu de la where
             if (isset($this->with[$method][$route->getPath()])) {
                 $with = $this->with[$method][$route->getPath()];
             } else {
                 $with = [];
             }
             // Lancement de la recherche de la method qui arrivée dans la requete
             // ensuite lancement de la verification de l'url de la requete
             // execution de la fonction associé à la route.
             if ($route->match($this->request->uri(), $with)) {
                 $this->currentPath = $route->getPath();
                 // appel requête fonction
                 if ($this->config->getTakeInstanceOfApplicationInFunction()) {
                     $response = $route->call($this->request, $this->config->getNamespace(), $this);
                 } else {
                     $response = $route->call($this->request, $this->config->getNamespace());
                 }
                 if (is_string($response)) {
                     $this->response->send($response);
                 } else {
                     if (is_array($response) || is_object($response)) {
                         $this->response->json($response);
                     }
                 }
                 $error = false;
             }
         }
     }
     // Si la route n'est pas enrégistre alors on lance une erreur 404
     if ($error === true) {
         // vérification et appel de la fonction du branchement 404
         if (empty($this->errorCode)) {
             $this->response->send('Cannot ' . $method . ' ' . $this->request->uri() . ' 404');
         }
         $this->response->code(404);
     }
     return $error;
 }