%PDF- %PDF-
| Direktori : /var/www/crm/jssource/ |
| Current File : /var/www/crm/jssource/jsmin.php |
<?php
class SugarMin {
/**
* jsParser will take javascript source code and minify it.
*
* Note: There is a lot of redundant code since both passes
* operate similarly but with slight differences. It will probably
* be a good idea to refactor the code at a later point when it is stable.
*
* JSParser will perform 3 passes on the code. Pass 1 takes care of single
* line and mult-line comments. Pass 2 performs some sanitation on each of the lines
* and pass 3 works on stripping out unnecessary spaces.
*
* @param string $js
* @param string $currentOptions
* @return void
*/
private function __construct($text, $compression) {
$this->text = trim($text)."\n";
$this->compression = $compression;
}
/**
* Entry point function to minify javascript.
*
* @param string $js Javascript source code as a string.
* @param string $compression Compression option. {light, deep}.
* @return string $output Output javascript code as a string.
*/
static public function minify($js, $compression = 'light') {
try {
$me = new SugarMin($js, $compression);
$output = $me->jsParser();
return $output;
} catch (Exception $e) {
// Exception handling is left up to the implementer.
throw $e;
}
}
protected function jsParser() {
require_once('jssource/Minifier.php');
return Minifier::minify($this->text);
}
}