You are here

public static function Minifier::minify in Advanced CSS/JS Aggregation 8.3

Same name and namespace in other branches
  1. 8.4 advagg_js_minify/jshrink.inc \JShrink\Minifier::minify()
  2. 8.2 advagg_js_minify/jshrink.inc \JShrink\Minifier::minify()
  3. 7.2 advagg_js_compress/jshrink.inc \JShrink\Minifier::minify()

Takes a string containing javascript and removes unneeded characters in order to shrink the code without altering it's functionality.

Parameters

string $js The raw javascript to be minified:

array $options Various runtime options in an associative array:

Return value

bool|string

Throws

\Exception

1 call to Minifier::minify()
JsMinifier::minifyJshrink in advagg_js_minify/src/Asset/JsMinifier.php
Minify a JS string using jshrink.

File

advagg_js_minify/jshrink.inc, line 145

Class

Minifier
Minifier

Namespace

JShrink

Code

public static function minify($js, $options = array()) {
  try {
    ob_start();
    $jshrink = new Minifier();
    $js = $jshrink
      ->lock($js);
    $jshrink
      ->minifyDirectToOutput($js, $options);

    // Sometimes there's a leading new line, so we trim that out here.
    $js = ltrim(ob_get_clean());
    $js = $jshrink
      ->unlock($js);
    unset($jshrink);
    return $js;
  } catch (\Exception $e) {
    if (isset($jshrink)) {

      // Since the breakdownScript function probably wasn't finished
      // we clean it out before discarding it.
      $jshrink
        ->clean();
      unset($jshrink);
    }

    // without this call things get weird, with partially outputted js.
    ob_end_clean();
    throw $e;
  }
}