/** * répresente le classe Request * * @return Request */ function request() { return Request::configure(); }
/** * 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; }