mirror of
https://github.com/Mibew/mibew.git
synced 2025-03-04 10:58:31 +03:00
parent
9fef4b2871
commit
30fd4bad7c
@ -46,6 +46,7 @@ class JsTranslationController extends AbstractController
|
|||||||
$item->lock();
|
$item->lock();
|
||||||
|
|
||||||
$messages = load_messages($locale);
|
$messages = load_messages($locale);
|
||||||
|
// Store JSON-encoded data to reduce count of json_encode calls.
|
||||||
$content = sprintf(
|
$content = sprintf(
|
||||||
'%s(%s);',
|
'%s(%s);',
|
||||||
'Mibew.Localization.set',
|
'Mibew.Localization.set',
|
||||||
@ -55,8 +56,39 @@ class JsTranslationController extends AbstractController
|
|||||||
$item->set($content);
|
$item->set($content);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Session is started automatically during application initialization
|
||||||
|
// and PHP sets "Cache-Control" and "Expires" headers to forbid caching
|
||||||
|
// and to keep the session private. In this script we actually does not
|
||||||
|
// use session stuff, thus we can remove these headers to provide
|
||||||
|
// caching. Notice that all headers are removed to clear "Set-Cookie"
|
||||||
|
// header with session ID and may be some other unsafe headers that
|
||||||
|
// must not be cached.
|
||||||
|
header_remove();
|
||||||
|
|
||||||
|
// The whole response body (JSON-encoded with a callback function) is
|
||||||
|
// cached via cache backend, thus it's simplier to use Symfony's
|
||||||
|
// Response class instead of JsonResponse.
|
||||||
$response = new Response();
|
$response = new Response();
|
||||||
$response->headers->set('Content-Type', 'text/javascript');
|
$response->headers->set('Content-Type', 'text/javascript');
|
||||||
|
|
||||||
|
// Set various cache headers
|
||||||
|
$response->setPublic();
|
||||||
|
$response->setMaxAge(120);
|
||||||
|
if ($item->getCreation()) {
|
||||||
|
// Creation field can be unavailable for some cache drivers.
|
||||||
|
$response->setLastModified($item->getCreation());
|
||||||
|
}
|
||||||
|
$response->setETag(sha1($content));
|
||||||
|
|
||||||
|
if ($response->isNotModified($request)) {
|
||||||
|
$response->setNotModified();
|
||||||
|
|
||||||
|
// We does not need to send content for the client. Just return 304
|
||||||
|
// status code.
|
||||||
|
return $response;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Pass the whole response for the client.
|
||||||
$response->setContent($content);
|
$response->setContent($content);
|
||||||
|
|
||||||
return $response;
|
return $response;
|
||||||
|
Loading…
Reference in New Issue
Block a user