Skip to content

Instantly share code, notes, and snippets.

@mortenson
Last active March 27, 2018 06:31
Show Gist options
  • Save mortenson/3bd018b6ffa73fb4f7e1175b92c25891 to your computer and use it in GitHub Desktop.
Save mortenson/3bd018b6ffa73fb4f7e1175b92c25891 to your computer and use it in GitHub Desktop.
Get the HTML of arbitrary Drupal libraries
<?php
$libraries = ['core/jquery'];
// In this example I'm just concerned about JS assets, but you can use other
// services to render other assets.
/** @var \Drupal\Core\Asset\AssetResolver $asset_resolver */
$asset_resolver = \Drupal::service('asset.resolver');
/** @var \Drupal\Core\Asset\JsCollectionRenderer $js_renderer */
$js_renderer = \Drupal::service('asset.js.collection_renderer');
$assets = new AttachedAssets();
$assets->setLibraries($libraries);
list($js_assets_header, $js_assets_footer) = $asset_resolver->getJsAssets($assets, FALSE);
$build = [];
$build[] = $js_renderer->render($js_assets_header);
$build[] = $js_renderer->render($js_assets_footer);
$html = \Drupal::service('renderer')->renderRoot($build);
// Yay!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment