public function before(WebRequest $request) { if (!$request->getArguments()->has(WebRequest::$METHOD_KEY)) { $request->setMethod(WebRequest::METHOD_GET); } try { $this->boxes->dispatch($request, $this->router, $request->getArguments()); } catch (WrappedRedirection $r) { $request->getArguments()->set('target', $r->getTarget()); $request->setMethod('redirect'); } return parent::before($request); }
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; }
public function givenTheMethodIs($method) { $this->request->setMethod($method); }