Ejemplo n.º 1
0
 /**
  * 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);
 }
Ejemplo n.º 2
0
 /**
  * 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}'.");
 }
Ejemplo n.º 3
0
 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;
 }
Ejemplo n.º 4
0
 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;
 }