/** * Do a forward to specified uri using request dispatcher. * * This method is used by all internal method needing to do a forward. * * @param string $uri Context-relative URI to forward to * @param \Symfony\Component\HttpFoundation\Request $request Current page request * @param \Symfony\Component\HttpFoundation\Response $response Current page response */ protected function doForward($uri, \Symfony\Component\HttpFoundation\Request $request, \Symfony\Component\HttpFoundation\Response $response) { // Create a new URI $uri = $request->getUriForPath($uri); // Consider using standard $_POST, $_FILES etc. $subRequest = Request::create($uri, $request->getMethod(), $request->getMethod() == 'POST' ? $request->request->all() : $request->query->all(), $request->cookies->all(), $request->files->all(), $request->server->all()); // If it was a POST then ensure it also has any query parameters if ($request->getMethod() == 'POST') { $subRequest->query->add($request->query->all()); } if ($request->getSession()) { $subRequest->setSession($request->getSession()); } // Obtain a new subrequest without Silex attributes $allowedKeys = array_filter(array_keys($request->attributes->all()), function ($key) { // Filter out silex "_" attributes return substr($key, 0, 1) != '_'; }); $subRequest->attributes->add(array_intersect_key($request->attributes->all(), array_flip($allowedKeys))); // Call for a sub-request (Note: Non-conventionally passes parent query/attributes) $subResponse = $this->actionKernel->getApplication()->handle($subRequest, HttpKernelInterface::SUB_REQUEST, false); // Update our current response to bring in the response $response->setContent($subResponse->getContent()); $response->setStatusCode($subResponse->getStatusCode()); $response->setCharset($subResponse->getCharset()); $response->setProtocolVersion($subResponse->getProtocolVersion()); // Determine whether all headers are 'added' or should replace (?) $response->headers->add($subResponse->headers->all()); }
/** * Set the user's currently selected Locale. * * @param \Symfony\Component\HttpFoundation\Request $request The request we are processing * @param string $locale The user's selected Locale to be set, * or null to select the system's default Locale */ protected function setLocale(Request $request, $locale) { $session = $request->getSession(); if (is_null($locale)) { // Silex core parameter $app = $this->actionKernel->getApplication(); $locale = $app['locale']; } $session->set(\Phruts\Util\Globals::LOCALE_KEY, $locale); }
public function testAccessorMutators() { $this->assertNotEmpty($this->actionKernel->getApplication()); }