public HtmlRenderer::invokePageAttachmentHooks(array &$page)
Invokes the page attachment hooks.
@internal
Parameters
array &$page: A #type 'page' render array, for which the page attachment hooks will be invoked and to which the results will be added.
Throws
\LogicException
See also
File
- core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php, line 292
Class
- HtmlRenderer
- Default main content renderer for HTML requests.
Namespace
Drupal\Core\Render\MainContent
Code
public function invokePageAttachmentHooks(array &$page) { // Modules can add attachments. $attachments = []; foreach ($this->moduleHandler->getImplementations('page_attachments') as $module) { $function = $module . '_page_attachments'; $function($attachments); } if (array_diff(array_keys($attachments), ['#attached', '#cache']) !== []) { throw new \LogicException('Only #attached and #cache may be set in hook_page_attachments().'); } // Modules and themes can alter page attachments. $this->moduleHandler->alter('page_attachments', $attachments); \Drupal::theme()->alter('page_attachments', $attachments); if (array_diff(array_keys($attachments), ['#attached', '#cache']) !== []) { throw new \LogicException('Only #attached and #cache may be set in hook_page_attachments_alter().'); } // Merge the attachments onto the $page render array. $page = $this->renderer->mergeBubbleableMetadata($page, $attachments); }
Please login to continue.