namespace Symfony\Component\HttpKernel\Fragment;
+use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpKernel\HttpKernelInterface;
use Symfony\Component\HttpKernel\Controller\ControllerReference;
-use Symfony\Component\HttpKernel\KernelEvents;
use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent;
-use Symfony\Component\EventDispatcher\EventDispatcherInterface;
+use Symfony\Component\HttpKernel\HttpCache\SubRequestHandler;
+use Symfony\Component\HttpKernel\HttpKernelInterface;
+use Symfony\Component\HttpKernel\KernelEvents;
/**
* Implements the inline rendering strategy where the Request is rendered by the current HTTP kernel.
$level = ob_get_level();
try {
- return $this->kernel->handle($subRequest, HttpKernelInterface::SUB_REQUEST, false);
+ return SubRequestHandler::handle($this->kernel, $subRequest, HttpKernelInterface::SUB_REQUEST, false);
} catch (\Exception $e) {
// we dispatch the exception event to trigger the logging
// the response that comes back is simply ignored
$cookies = $request->cookies->all();
$server = $request->server->all();
- // Override the arguments to emulate a sub-request.
- // Sub-request object will point to localhost as client ip and real client ip
- // will be included into trusted header for client ip
- try {
- if (Request::HEADER_X_FORWARDED_FOR & Request::getTrustedHeaderSet()) {
- $currentXForwardedFor = $request->headers->get('X_FORWARDED_FOR', '');
-
- $server['HTTP_X_FORWARDED_FOR'] = ($currentXForwardedFor ? $currentXForwardedFor.', ' : '').$request->getClientIp();
- } elseif (method_exists(Request::class, 'getTrustedHeaderName') && $trustedHeaderName = Request::getTrustedHeaderName(Request::HEADER_CLIENT_IP, false)) {
- $currentXForwardedFor = $request->headers->get($trustedHeaderName, '');
-
- $server['HTTP_'.$trustedHeaderName] = ($currentXForwardedFor ? $currentXForwardedFor.', ' : '').$request->getClientIp();
- }
- } catch (\InvalidArgumentException $e) {
- // Do nothing
- }
-
- $server['REMOTE_ADDR'] = '127.0.0.1';
unset($server['HTTP_IF_MODIFIED_SINCE']);
unset($server['HTTP_IF_NONE_MATCH']);
$subRequest->setSession($session);
}
+ if ($request->get('_format')) {
+ $subRequest->attributes->set('_format', $request->get('_format'));
+ }
+ if ($request->getDefaultLocale() !== $request->getLocale()) {
+ $subRequest->setLocale($request->getLocale());
+ }
+
return $subRequest;
}