/** * Call the function associated with this route * @return returns the function result */ public function call(Request $request) { if (array_key_exists('locale', $this->arguments)) { $request->setLocale($this->arguments['locale']); unset($this->arguments['locale']); } $arguments = array_values($this->arguments); array_unshift($arguments, $request); return call_user_func_array(array(new $this->controller(), $this->action), $arguments); }
/** * Resolve the route from the request path * @param $request Moulino\Framework\Http\Request request http * @return Moulino\Framework\Http\Response */ public function resolve(Request $request) { $method = $request->getMethod(); $path = $request->getPath(); foreach ($this->routes[$method] as $route) { if ($route->match($path)) { return $route; } } throw new NoRouteFoundException("No routes matches the request path '{$path}'."); }
public function send(Request $request) { $statusText = $this->statusText[$this->statusCode]; header(sprintf('HTTP/%s %s %s', $this->httpVersion, $this->statusCode, $this->statusText[$this->statusCode])); foreach ($this->headers as $key => $value) { header($key . ' : ' . $value); } if (!array_key_exists('Content-Type', $this->headers)) { $mimeType = $request->getMimeType(); $charset = $this->charset; header("Content-Type: {$mimeType};charset={$charset}"); } echo $this->content; }
public function isAuthorized(Request $request) { $uri = $request->getUri(); foreach ($this->rules as $rule) { $regex = '#' . $rule->getPath() . '#'; if (preg_match($regex, $uri)) { if ($rule->hasRole('ANONYMOUS')) { return true; } $authInfo = $this->authenticator->getAuthInfo(); if ($authInfo['authenticated']) { if ($rule->hasRole('IS_AUTHENTICATED')) { return true; } foreach ($authInfo['roles'] as $role) { if ($rule->hasRole($role)) { return true; } } } } } return false; }