Esempio n. 1
0
 /**
  * Takes a string containing javascript and removes unneeded characters in
  * order to shrink the code without altering it's functionality.
  *
  * @param   string  $js       The raw javascript to be minified
  * @param   array   $options  Various runtime options in an associative array
  *
  * @throws \Exception
  * @return bool|string
  */
 public static function minify($js, $options = array())
 {
     try {
         ob_start();
         $jshrink = new CompojoomMinifier();
         $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;
     }
 }