minifyJs() public static method

Minify a Javascript string
See also: http://www.julienlecomte.net/yuicompressor/README
public static minifyJs ( string $js, array $options = [] ) : string
$js string
$options array (verbose is ignored)
return string
Example #1
0
 /**
  * override method: get content of css files
  */
 function getJsContents($files, $isCompressed = true, $isYUI = false)
 {
     $contents = "/**ICE-ENGINE-JS**/";
     foreach ($files as $file) {
         $subpath = str_replace('/', DS, $file);
         $fullpath = JPATH_ROOT . DS . $subpath;
         //	$basepath = preg_replace( '/^\//', '', dirname($files2[$key]) );
         $contentFile = '';
         if (preg_match('/\\.php/', $file)) {
             $contentFile = @file_get_contents(JURI::base() . str_replace("&", "&", $file));
         } else {
             if (file_exists($fullpath)) {
                 // get Content Of File;
                 $contentFile = @file_get_contents($fullpath);
             }
         }
         if ($contentFile) {
             $contents .= "/** '.{$subpath}.' **/\t";
             $contents .= $contentFile;
         }
     }
     if ($isCompressed) {
         if ($isYUI) {
             $app =& JFactory::getApplication();
             Minify_YUICompressor::$jarFile = dirname(__FILE__) . DS . 'Minify' . DS . 'yuicompressor-2.4.6.jar';
             Minify_YUICompressor::$tempDir = $app->getCfg("tmp_path");
             $contents = Minify_YUICompressor::minifyJs($contents, array('nomunge' => true, 'line-break' => 1000));
         } else {
             $contents = JSMin::minify($contents);
         }
     }
     return $contents;
 }
Example #2
0
function yuiJs($js)
{
    require_once 'Minify/YUICompressor.php';
    Minify_YUICompressor::$jarFile = dirname(__FILE__) . '/lib/yuicompressor-2.4.2.jar';
    Minify_YUICompressor::$tempDir = GLOBAL_ROOT_PATH . $core->sysConfig->path->cache->min;
    return Minify_YUICompressor::minifyJs($js);
}
 public static function testJs(&$error)
 {
     try {
         Minify_YUICompressor::minifyJs('alert("ok");');
         $error = 'OK';
         return true;
     } catch (Exception $exception) {
         $error = $exception->getMessage();
         return false;
     }
 }
Example #4
0
 /**
  * @param string $data
  * @param string $target
  *
  * @return string
  */
 public function minifyJsCss($data, $target)
 {
     if ($this->isYUICompressEnabled() && $this->isCompressEnabled()) {
         Minify_YUICompressor::$jarFile = Mage::getBaseDir() . DS . 'lib' . DS . 'yuicompressor' . DS . 'yuicompressor.jar';
         Minify_YUICompressor::$tempDir = realpath(sys_get_temp_dir());
     }
     $YUICompressorFailed = false;
     switch (pathinfo($target, PATHINFO_EXTENSION)) {
         case 'js':
             if ($this->isYUICompressEnabled() && $this->isCompressEnabled()) {
                 try {
                     Varien_Profiler::start('Minify_YUICompressor::minifyJs');
                     $data = Minify_YUICompressor::minifyJs($data);
                     Varien_Profiler::stop('Minify_YUICompressor::minifyJs');
                     $YUICompressorFailed = false;
                 } catch (Exception $e) {
                     Mage::log(Minify_YUICompressor::$yuiCommand);
                     Mage::logException($e);
                     $YUICompressorFailed = true;
                 }
             }
             if (!$this->isYUICompressEnabled() && $this->isCompressEnabled() || $YUICompressorFailed === true && $this->isCompressEnabled()) {
                 Varien_Profiler::start('Minify_JSMin::minify');
                 $data = Minify_JSMin::minify($data);
                 Varien_Profiler::stop('Minify_JSMin::minify');
             }
             break;
         case 'css':
             if ($this->isYUICompressEnabled() && $this->isCompressEnabled()) {
                 try {
                     Varien_Profiler::start('Minify_YUICompressor::minifyCss');
                     $data = Minify_YUICompressor::minifyCss($data);
                     Varien_Profiler::stop('Minify_YUICompressor::minifyCss');
                     $YUICompressorFailed = false;
                 } catch (Exception $e) {
                     Mage::log(Minify_YUICompressor::$yuiCommand);
                     Mage::logException($e);
                     $YUICompressorFailed = true;
                 }
             }
             if (!$this->isYUICompressEnabled() && $this->isCompressEnabled() || $YUICompressorFailed === true && $this->isCompressEnabled()) {
                 Varien_Profiler::start('Minify_Css_Compressor::process');
                 $data = Minify_Css_Compressor::process($data);
                 Varien_Profiler::stop('Minify_Css_Compressor::process');
             }
             break;
         default:
             return false;
     }
     return $data;
 }
Example #5
0
 public function minifyJsCss($data, $target)
 {
     if ($this->canMinifyCss() || $this->canMinifyJs()) {
         if ($this->isYUICompressEnabled()) {
             Minify_YUICompressor::$jarFile = Mage::getBaseDir() . DS . 'bin' . DS . 'yuicompressor-2.4.7.jar';
             Minify_YUICompressor::$tempDir = realpath(sys_get_temp_dir());
         }
         switch (pathinfo($target, PATHINFO_EXTENSION)) {
             case 'js':
                 if ($this->canMinifyJs()) {
                     if ($this->isYUICompressEnabled()) {
                         try {
                             $data = Minify_YUICompressor::minifyJs($data);
                             $YUICompressorFailed = false;
                         } catch (Exception $e) {
                             Mage::logException($e);
                             $YUICompressorFailed = true;
                         }
                     }
                     if (!$this->isYUICompressEnabled() || $YUICompressorFailed) {
                         $data = Minify_JSMin::minify($data);
                     }
                 }
                 break;
             case 'css':
                 if ($this->canMinifyCss()) {
                     if ($this->isYUICompressEnabled()) {
                         try {
                             $data = Minify_YUICompressor::minifyCss($data);
                             $YUICompressorFailed = false;
                         } catch (Exception $e) {
                             Mage::logException($e);
                             $YUICompressorFailed = true;
                         }
                     }
                     if (!$this->isYUICompressEnabled() || $YUICompressorFailed) {
                         $data = Minify_Css_Compressor::process($data);
                     }
                 }
                 break;
             default:
                 return false;
         }
     }
     return $data;
 }
 public function minify($js)
 {
     try {
         if ($this->conf->outputfilters->javascriptminifyalgorithm == "jsminplus") {
             $js = JSMinPlus::minify($js);
         } else {
             if ($this->conf->outputfilters->javascriptminifyalgorithm == "yuicompressor") {
                 Minify_YUICompressor::$tempDir = PIMCORE_TEMPORARY_DIRECTORY;
                 Minify_YUICompressor::$jarFile = PIMCORE_PATH . "/lib/Minify/yuicompressor-2.4.2.jar";
                 $js = Minify_YUICompressor::minifyJs($js);
             } else {
                 $js = JSMin::minify($js);
             }
         }
     } catch (Exception $e) {
         Logger::error("Unable to minify javascript");
         Logger::error($e);
     }
     return $js;
 }
Example #7
0
    fclose($fp);
}
echo "Finished building {$OUTPUT_DIR}{$OUTPUT_FILE} (" . filesize($OUTPUT_DIR . $OUTPUT_FILE) . " bytes): Took " . (microtime_float() - $time_start) . "s\n\n";
fclose($fpOut);
echo "Building Compressed File: {$OUTPUT_DIR}{$OUTPUT_FILE_COMPRESSED}\n\r";
$time_start = microtime_float();
Minify_YUICompressor::$jarFile = $YUI_COMPRESSOR_JAR;
Minify_YUICompressor::$tempDir = $TMP_DIR;
Minify_YUICompressor::$javaExecutable = $JDK_HOME . "/bin/java";
$fp = fopen($OUTPUT_DIR . $OUTPUT_FILE, "r");
$uncompressed = "";
while (!feof($fp)) {
    $uncompressed .= fgets($fp);
}
fclose($fp);
$compressed = Minify_YUICompressor::minifyJs($uncompressed, array());
$fp = fopen($OUTPUT_DIR . $OUTPUT_FILE_COMPRESSED, "w");
fwrite($fp, $compressed);
fclose($fp);
echo "Finished building {$OUTPUT_DIR}{$OUTPUT_FILE_COMPRESSED} (" . filesize($OUTPUT_DIR . $OUTPUT_FILE_COMPRESSED) . " bytes): Took " . (microtime_float() - $time_start) . "s\n";
echo "\nCopying Resources to {$OUTPUT_DIR}{$OUTPUT_RESOURCES}\n";
if (!is_dir($OUTPUT_DIR . $OUTPUT_RESOURCES)) {
    mkdir($OUTPUT_DIR . 'resources');
}
copydir($RESOURCES_DIR, $OUTPUT_DIR . $OUTPUT_RESOURCES);
echo "\nCopying Documentation to {$OUTPUT_DIR}{$OUTPUT_DOCUMENTATION}\n";
if (!is_dir($OUTPUT_DIR . $OUTPUT_DOCUMENTATION)) {
    mkdir($OUTPUT_DIR . $OUTPUT_DOCUMENTATION);
}
copydir($DOCUMENTATION_DIR, $OUTPUT_DIR . $OUTPUT_DOCUMENTATION, '*');
echo "\nCopying Libraries to {$OUTPUT_DIR}{$OUTPUT_LIBS}\n";
 protected function _yui_compression_js($script)
 {
     if ($this->config->item('output.package.enable') == false) {
         return $script;
     }
     $this->load->library('web_apps/Minify_YUICompressor');
     $this->load->library('web_apps/phplock.php');
     $lock = $this->phplock;
     $lock->startLock();
     //$lock->lock ();
     $status = $lock->isLock();
     $i = 0;
     while (!$status && $i < 3) {
         $this->_wait();
         $status = $lock->isLock();
         $i++;
     }
     $pass = false;
     while ($pass == false) {
         try {
             $packed = Minify_YUICompressor::minifyJs($script);
             $vm_error = 'Error occurred during initialization of VM';
             while (substr($packed, 0, strlen($vm_error)) == $vm_error || $packed == '') {
                 $this->_wait();
                 $packed = Minify_YUICompressor::minifyJs($script);
             }
             $pass = true;
         } catch (Exception $e) {
             $this->_wait();
         }
     }
     $lock->unlock();
     $lock->endLock();
     return $packed;
 }
 protected function buildScript()
 {
     $pkgHandle = FRONTEND_DEVELOPER_PACKAGE_HANDLE;
     Loader::library("3rdparty/jsminify/JSMin", $pkgHandle);
     Loader::library("3rdparty/jsminify/Minify/YUICompressor", $pkgHandle);
     Loader::model('file_list');
     $fh = Loader::helper('file');
     $files = $this->post("module");
     $packType = $this->post("packType");
     $output = "";
     $pl = new MootoolsPluginList();
     foreach ($files as $key => $fID) {
         $file = File::getByID($fID);
         $output .= file_get_contents($file->getPath()) . "\n";
     }
     switch ($packType) {
         case MootoolsPluginBuildFormBlockController::PACKTYPE_JSMin_COMPRESSOR:
             $output = JSMin::minify($output);
             break;
         case MootoolsPluginBuildFormBlockController::PACKTYPE_NO_COMPRESSOR:
             break;
         case MootoolsPluginBuildFormBlockController::PACKTYPE_YUI_COMPRESSOR:
         default:
             $yui = DIR_PACKAGES . '/' . $pkgHandle . '/' . DIRNAME_LIBRARIES . '/' . '3rdparty/yui/yuicompressor-2.4.2.jar';
             $tmp = $fh->getTemporaryDirectory() . '/';
             Minify_YUICompressor::$jarFile = $yui;
             Minify_YUICompressor::$tempDir = $tmp;
             $output = Minify_YUICompressor::minifyJs($output);
     }
     $output = $this->header . "\n" . $output;
     $file = $this->javascript . ".js";
     header("Content-disposition: attachment; filename=" . $file);
     header("Content-type: application/octet-stream; name=" . $file);
     echo $output;
     exit;
 }
 /**
  * Returns compressed content (done with given compression type, see constants)
  * @param string $content
  * @param string $method
  * @return string
  */
 private function compress($content, $method)
 {
     switch ($method) {
         case self::CSS_MINIFY:
             require_once t3lib_extMgm::extPath('queo_speedup', 'res/Minify_CSS_Compressor.php');
             return Minify_CSS_Compressor::process($content);
             break;
         case self::CSS_YIU:
             require_once t3lib_extMgm::extPath('queo_speedup', 'res/YUICompressor.php');
             $this->configureYUI($this->conf);
             return Minify_YUICompressor::minifyCSS($content, array('nomunge' => true, 'line-break' => 1000));
             break;
         case self::JS_YUI:
             require_once t3lib_extMgm::extPath('queo_speedup', 'res/YUICompressor.php');
             $this->configureYUI($this->conf);
             return Minify_YUICompressor::minifyJs($content, array('line-break' => 1000));
             break;
         case self::JS_MIN:
             require_once PATH_typo3 . 'contrib/jsmin/jsmin.php';
             return JSMin::minify($content);
             break;
         case self::JS_MINPLUS:
             require_once t3lib_extMgm::extPath('queo_speedup', 'res/JSMinPlus.php');
             return JSMinPlus::minify($content);
             break;
         default:
         case self::NO_COMPRESSION:
             //unknown compression type
             return $content;
             break;
     }
 }