Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Combining and Compressing multiple JavaScript files in php

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.

like image 835
superUntitled Avatar asked May 15 '09 14:05

superUntitled


3 Answers

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'));
like image 61
pgb Avatar answered Nov 04 '22 06:11

pgb


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.

like image 7
Parrots Avatar answered Nov 04 '22 06:11

Parrots


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

like image 2
TheHippo Avatar answered Nov 04 '22 05:11

TheHippo