Exemplo n.º 1
0
 /**
  * Parse the action uri value.
  *
  * @param string $uri
  * @param bool $ssl
  * @return string
  */
 protected function parseAction($uri, $ssl)
 {
     if (strpos(esc_url($uri), 'http')) {
         $uri = esc_url($uri, ['http', 'https']);
         $uri = starts_with($uri, '/') ? substr($uri, 1) : $uri;
         return is_ssl() || $ssl ? str_replace('http://', 'https://', $uri) : $uri;
     }
     return is_ssl() || $ssl ? 'https://' . $this->request->getHttpHost() . $uri : 'http://' . $this->request->getHttpHost() . $uri;
 }
Exemplo n.º 2
0
 /**
  * Handle the given request and get the response.
  *
  * @param \Themosis\Core\Request $request
  * @return \Symfony\Component\HttpFoundation\Response
  * @throws \Exception
  */
 public function handle(Request $request)
 {
     try {
         $this->refreshRequest($request = Request::createFromBase($request));
         return $this->dispatch($request);
     } catch (\Exception $e) {
         throw $e;
     }
 }
Exemplo n.º 3
0
 /**
  * Find a matching route.
  *
  * @param array $routesByCondition
  * @param Request $request
  * @return null|\Themosis\Route\Route
  */
 protected function check(array $routesByCondition, Request $request)
 {
     foreach ($routesByCondition as $routes) {
         foreach ($routes as $route) {
             if (call_user_func($route->condition(), $route->getParams())) {
                 // Check if a template is associated and compare it to current route condition.
                 if ($this->hasTemplate() && 'themosis_is_template' !== $route->condition()) {
                     continue;
                 }
                 // Check if http only.
                 if ($route->httpOnly()) {
                     if ($request->isSecure()) {
                         continue;
                     }
                 }
                 // Check if https only.
                 if ($route->httpsOnly()) {
                     if (!$request->isSecure()) {
                         continue;
                     }
                 }
                 return $route;
             }
         }
     }
     return null;
 }