Shrink the size of your javascript with js min (the php way)

Getting more and more into javascript coding, two tools I found I could not do without are JSMin and JSlint, from Douglas Crockford.
On the JSmin webpage, a php version is available for download, but it did not fit my needs really well (in fact, the js version did, but, being a php-head, I got that one first), so I patched it a bit:

  1. made all the code work with PHP 4 (removed usage of splfileiterator, exceptions are replaced by triggering errors, class constants are turned into global constants, etc…)
  2. constant VERSION changed to JSMIN_VERSION to avoid name clashes
  3. added a new function to class JSMin to cleanly separate writing to output stream from parsing
  4. make sure that newline chars passed inside the comments parameter do not break output
  5. the file can now be included in a php app (whether cli or web hosted) and used as library (just define JSMIN_AS_LIB before including jsmin.php)
  6. when used as library, the class can operate on php strings instead of files
  7. i could not resist the urge to remove excess whitespace here and there in the php source, too (phpmin-syndrome???)

The new code is available here. Take a look at the comments inside for more info.

There is some other (php) work done on jsmin from a guy named Ed Eliot there

4 thoughts on “Shrink the size of your javascript with js min (the php way)

  1. This is what I searched! 🙂 I combined your class with the php port of Dean Edward’s packer. It works like a charm! Fantastic! Thank you! :))

  2. As you can easily read in the comments in the code 😉

    < ?php define('JSMIN_AS_LIB', true); // prevents auto-run on include include('jsmin.php'); // create the JSMin class, indicating no output file is desired $jsMin = new JSMin($this_string, false); $out = $jsMin->minify();
    ?>

Leave a Reply

Your email address will not be published. Required fields are marked *