0
0
Fork 0
mirror of https://github.com/salesagility/SuiteCRM.git synced 2025-01-11 20:08:27 +00:00
salesagility_SuiteCRM/jssource/jsmin.php
2013-09-23 20:30:44 +01:00

48 lines
1.5 KiB
PHP
Executable file

<?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);
}
}