$page =
$this->pageLoader->
load($request,
$context);
$hook =
new StorefrontHook($hookName,
$request->request->
all(),
$request->query->
all(),
$page,
$context);
// hook: storefront-{hook}
$this->
hook($hook);
$fields =
new ResponseFields( $request->
get('includes',
[]) );
$response =
$hook->
getScriptResponse();
$symfonyResponse =
$this->scriptResponseEncoder->
encodeToSymfonyResponse( $response,
$fields,
\
str_replace('-', '_', 'storefront_' .
$hookName . '_response'
) );
if ($response->
getCache()->
isEnabled()) { $request->attributes->
set(PlatformRequest::ATTRIBUTE_HTTP_CACHE,
['maxAge' =>
$response->
getCache()->
getMaxAge(), 'states' =>
$response->
getCache()->
getInvalidationStates()]);
$symfonyResponse->headers->
set(CacheStore::TAG_HEADER, \
json_encode($response->
getCache()->
getCacheTags(), \JSON_THROW_ON_ERROR
));
}