views:

1182

answers:

3

Hello, I am working on a PHP app that requires eight javascript files (hello web2.0).

I am wondering what the best way combine and compress all of the files dynamically. Am I phrasing the question correctly?

The end result is that I would include one .js file in the header, and that .js file would include of the .js files in my "includes/js" directory.

Thanks.

A: 

I've used Minify with my jQuery/PHP projects with lots of success. It includes caching too so there isn't much overhead.

I ended up changing things around and using .htaccess to route all requests to my javascript folder to the minify script, so for example:

<script type="text/javascript" src="/js/jquery.js,js/jquery-levitip.js,js/jquery-facebox.js,js/datepicker.js,js/ga.js"></script>

with my front-end HTML routes into my minify script and it returns all those scripts as one, compressed and minified. That way I can define the includes normally and everything happens behind the scenes.

But anyway check the user guide on their site, it's very well documented, and you should be able to pull things off the way you want too. Oh and it works for CSS too.

Parrots
+6  A: 

You can use jsmin-php

Their sample code is:

require 'jsmin-1.1.1.php';

// Output a minified version of example.js.
echo JSMin::minify(file_get_contents('example.js'));

You may easily join several js files by doing something like:

require 'jsmin-1.1.1.php';

// Output a minified version of example.js.
echo JSMin::minify(file_get_contents('example.js') . file_get_contents('example2.js'));
pgb
would you recommend this over using Minify?
superUntitled
Both use jsmin to compress the Javascript files. Maybe you should compress your js files with both libraries and decide. The caching feature of Minify seems good, though.
pgb
+1  A: 

You maybe could use Yahoo JavaScript Compressor which is a command line tool you could start from you PHP script.

Hippo