/** * Apply JsMin to $content. * * @param string $filename * @param string $content Content to filter. * @throws Exception * @return string */ public function output($filename, $content) { App::import('Vendor', 'jsmin', array('file' => $this->_settings['path'])); if (!class_exists('JsMin')) { throw new Exception(sprintf('Cannot not load filter class "%s".', 'JsMin')); } return JsMin::minify($content); }
/** * undocumented function * * @return void */ function main() { $result = $folder = null; $mainfiles = explode(',', $this->args[0]); $target = !empty($this->params['ext']) ? $this->args[0] . '.' . $this->params['ext'] : $this->args[0] . '.min'; $jsroot = $this->params['working'] . DS . $this->params['webroot'] . DS . 'js' . DS; foreach ((array) $mainfiles as $mainfile) { $mainfile = strpos($mainfile, '/') === false ? $jsroot . $mainfile : $mainfile; $Pack = new File(str_replace('.js', '', $mainfile) . '.js'); $result .= JsMin::minify($Pack->read()); } if (!empty($this->args[1])) { $folder = $this->args[1] . DS; $Js = new Folder($jsroot . $folder); list($ds, $files) = $Js->read(); foreach ((array) $files as $file) { $file = strpos($file, '/') === false ? $jsroot . $folder . $file : $file; $Pack = new File(str_replace('.js', '', $file) . '.js'); $result .= JsMin::minify($Pack->read()); } } $Packed = new File($jsroot . $target . '.js'); if ($Packed->write($result, 'w', true)) { $this->out($Packed->name() . ' created'); } }
/** * Tests JsMin::minify() */ public function testMinify() { $expect = "\nfunction foo(bar)\n{if(bar==2){return true;}else{return false;}}"; $javascript = ' function foo(bar) { if (bar == 2) { return true; } else { return false; } } '; $this->assertEquals($expect, JsMin::minify($javascript)); }
public function getFeatureContent($feature, GadgetContext $context, $isGadgetContext) { if (empty($feature)) { return ''; } if (!isset($this->features[$feature])) { throw new GadgetException("Invalid feature: " . htmlentities($feature)); } $featureName = $feature; $feature = $this->features[$feature]; $filesContext = $isGadgetContext ? 'gadgetJs' : 'containerJs'; if (!isset($feature[$filesContext])) { // no javascript specified for this context return ''; } $ret = ''; if (Shindig_Config::get('compress_javascript')) { $featureCache = Cache::createCache(Shindig_Config::get('feature_cache'), 'FeatureCache'); if ($featureContent = $featureCache->get(md5('features:' . $featureName . $isGadgetContext))) { return $featureContent; } } foreach ($feature[$filesContext] as $entry) { switch ($entry['type']) { case 'URL': $request = new RemoteContentRequest($entry['content']); $request->getOptions()->ignoreCache = $context->getIgnoreCache(); $context->getHttpFetcher()->fetch($request); if ($request->getHttpCode() == '200') { $ret .= $request->getResponseContent() . "\n"; } break; case 'FILE': $file = $feature['basePath'] . '/' . $entry['content']; $ret .= file_get_contents($file) . "\n"; break; case 'INLINE': $ret .= $entry['content'] . "\n"; break; } } if (Shindig_Config::get('compress_javascript')) { $ret = JsMin::minify($ret); $featureCache->set(md5('features:' . $featureName . $isGadgetContext), $ret); } return $ret; }
public function getContent() { if (!$this->loaded && $this->type == 'FILE') { if (Config::get('compress_javascript')) { $dataCache = Config::get('data_cache'); $dataCache = new $dataCache(); if (!($content = $dataCache->get(md5($this->content)))) { $content = JsMin::minify(JsLibrary::loadData($this->content, $this->type)); $dataCache->set(md5($this->content), $content); $this->content = $content; } else { $this->content = $content; } } else { $this->content = JsLibrary::loadData($this->content, $this->type); } $this->loaded = true; } return $this->content; }
public static function js($js) { return JsMin::minify($js); }
/** * Apply JsMin to $content. * * @param string $content Content to filter. * @return string */ public function filter($content) { return JsMin::minify($content); }
public static function minify($js) { $jsmin = new JsMin($js); return $jsmin->min(); }
/** * Apply JsMin to $content. * * @param string $filename * @param string $content Content to filter. * @return string */ public function output($filename, $content) { App::import('Vendor', 'jsmin', array('file' => $this->_settings['path'])); return JsMin::minify($content); }
/** * Uses jsmin.php to minify css content * * @access private * @param string $contents * @return string */ private function __jsMin($contents) { App::import('Vendor', 'jsMin', array('file' => 'minify' . DS . 'jsmin.php')); $minifiedContent = JsMin::minify($contents); if($this->__verify($minifiedContent)){ return $minifiedContent; }else{ $this->log("jsmin.php failed to minify JS content", 'AssetHelper'); return $contents; } }
/** * Minify JavaScript code, removes whitespaces * * @param $script * @return array */ public function minifyScript($script) { return JsMin::minify($script); }