For my latest project, I wanted to be able to easily minify CSS stylesheets, using the simplest syntax possible, ideally using a simple tag in the header, like
<?php echo $this->css->link(array('/assets/css/fonts.css','/assets/css/layout.css');?>
After some searching, I found a css minification library for PHP, minify
It was very easy to modify it so that It could be used in our CodeIgniter applications like any other libraries. All I did was wrap the main minification function in Codeigniter specific code. I modelled the interaction on the image library, as I guess that's what most people are used to.
How to use
Using the library involves loading it, setting up an array with some configuration values, such as the source css file(s), the destination file (optional) or the time that the generated file should be cached, and finally initializing the library with the configuration array() .
The following code, which should go in your controller, will look very familiar to Codeigniter users.
<?php $this->load->library('css'); //array of files to concatenate and minify $config['source_file']=array('/assets/css/layout.css','/assets/css/fonts.css'); //where to output the result $config['dest_file']'/assets/css/css.min.css'; //Cache time in hours $config['cache_time']=48; $this->css->initialize($config); echo $this->css->link(); ?>
Will output the following stylesheet tag:
<link rel="stylesheet" href="/assets/css/css.min.css" type="text/css" media="screen" />
You can get it from GitHub. Don't forget to fork it if you think you can make it better!
I'm not sure the way I've done it, using a