Ejemplo n.º 1
0
Archivo: Box.php Proyecto: watoki/boxes
 public function dispatch(WebRequest $request, Router $router)
 {
     $arguments = $request->getArguments();
     $request->setTarget($this->target);
     if ($arguments->isEmpty()) {
         $arguments->merge($this->arguments);
         $request->setMethod(WebRequest::METHOD_GET);
     } else {
         if ($arguments->has(self::$TARGET_KEY)) {
             $request->setTarget(Path::fromString($arguments->get(self::$TARGET_KEY)));
         }
         if ($arguments->has(WebRequest::$METHOD_KEY)) {
             $request->setMethod($arguments->get(WebRequest::$METHOD_KEY));
         } else {
             $request->setMethod(WebRequest::METHOD_GET);
         }
     }
     $this->response = $router->route($request)->respond();
     if ($this->response->getHeaders()->has(WebResponse::HEADER_LOCATION)) {
         throw new WrappedRedirection($this->response->getHeaders()->get(WebResponse::HEADER_LOCATION));
     }
     return $request;
 }
Ejemplo n.º 2
0
 private function wrapMappedTarget(WebRequest $request)
 {
     $prefixedBox = Wrapper::$PREFIX . $this->mappedBox;
     $request->getArguments()->set(Box::$PRIMARY_TARGET_KEY, $this->mappedBox);
     $arguments = new Map();
     if ($request->getArguments()->has($prefixedBox)) {
         $arguments = $request->getArguments()->get($prefixedBox);
     }
     $target = $request->getTarget()->toString();
     $request->setTarget(new Path());
     if ($target) {
         $arguments->set(Box::$TARGET_KEY, $target);
     }
     foreach ($request->getArguments() as $key => $value) {
         if (substr($key, 0, strlen(Wrapper::$PREFIX)) != Wrapper::$PREFIX) {
             $arguments->set($key, $value);
             $request->getArguments()->remove($key);
         }
     }
     $request->getArguments()->set($prefixedBox, $arguments);
 }
Ejemplo n.º 3
0
 public function givenTheRequestTarget_Is($string)
 {
     $this->request->setTarget(Path::fromString($string));
 }