/** * 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; }
/** * 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; } }
/** * 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; }