Exemple #1
0
 public function action_js()
 {
     $group = (string) $this->request->param('group');
     if (empty($group)) {
         $group = 'default';
     }
     if (!($content = Kohana::cache('minify::js::' . $group))) {
         $path = isset($this->_config['js'][$group]['path']) ? $this->_config['js'][$group]['path'] : '';
         $files = isset($this->_config['js'][$group]['files']) ? $this->_config['js'][$group]['files'] : array();
         if (!is_array($files)) {
             $files = array();
         }
         $content = '';
         foreach ($files as $file) {
             $content .= file_get_contents($path . DIRECTORY_SEPARATOR . $file) . "\n";
         }
         if (!empty($content)) {
             $pack = isset($this->_config['js'][$group]['packer']) ? (bool) $this->_config['js'][$group]['packer'] : false;
             $is_min = isset($this->_config['js'][$group]['is_min']) ? (bool) $this->_config['js'][$group]['is_min'] : false;
             if ($pack) {
                 $packer = new Minify_Packer($content, 'Normal', TRUE, FALSE);
                 $content = $packer->pack();
             } else {
                 if (!$is_min) {
                     $minifier = isset($this->_config['js'][$group]['minifier']) ? $this->_config['js'][$group]['minifier'] : '';
                     if (!empty($minifier) && class_exists($minifier)) {
                         $class = new ReflectionClass($minifier);
                         $js_min = $class->newInstance($content);
                         $content = $class->getMethod('min')->invoke($js_min);
                     } else {
                         $content = Minify_JS::minify($content);
                     }
                 }
             }
         }
         if ((bool) $this->_config['cache']) {
             Kohana::cache('minify::js::' . $group, $content, (int) $this->_config['cache_lifetime']);
         }
     }
     $this->response->body($content);
 }
Exemple #2
0
 /**
  * Minify Javascript.
  *
  * @param string $js Javascript to be minified
  *
  * @return string
  */
 public static function minify($js)
 {
     $jsmin = new Minify_JS($js);
     return $jsmin->min();
 }