1
0
mirror of https://github.com/mrclay/minify.git synced 2025-02-21 23:42:24 +01:00

WELCOME TO MINIFY 2.0!

Currently the documentation at http://code.google.com/p/minify/ applies to 
the earlier 1.x release, but this will be updated in due time.

SETUP 

Minify is a library of files inside the "lib" directory. Wherever you 
place "lib", it needs to be in your include_path, and should be 
access-protected or outside of DOCUMENT_ROOT. Alternately you can dump
the contents of "lib" into an existing directory in your include_path.

TESTING

1. Place the "web" directory somewhere in DOCUMENT_ROOT. 

2. Edit "config.php" to manually add "lib" to the include_path.

3. To enable server-side caching, set $minifyCachePath to a PHP-writeable directory

4. Visit http://yourdomain.com/path/to/web/examples/1/
   This page should contain 2 "PASS"es. It may take a few seconds to minify 
   jQuery. If you've enabled caching this wait will no longer be needed.

5. Visit http://yourdomain.com/path/to/web/test/test_all.php
   This will run all unit tests. You can call the tests individually to see
   more details.

MINIFY OVERVIEW 

Minify is an HTTP content server. It compresses sources of content 
(usually files), combines the result and serves it with appropriate 
HTTP headers. These headers can allow clients to perform conditional 
GETs (serving content only when clients do not have a valid cache) 
or tell clients to cache the file until a given date/time. 

Minify works with Minify_Source objects. These usually represent a file 
on disk, but a source can also be content on hand or from a database. 
Sources with known "last modified" timestamps allow Minify to implement 
server-side caching and conditional GETs.

You configure Minify via a Minify_Controller object. The controller 
supplies the sources and default options to serve a request, 
determining how it's to be responded to. Several controllers are 
supplied with Minify, but it's also fairly easy to write your own. See
the files in /lib/Minify/Controller for examples.

To use an existing controller, you call Minify::serve(), passing it:
1. the name of your controller of choice (without the "Minify_Controller" 
   prefix) or a custom controller object subclassed from Minify_Controller_Base.
2. a combined array of controller and Minify options. Eg.: 

// serve a minified javascript file and tell clients to cache it for a 
// year 
Minify::serve('Files', array(
	'files' => array('/path/to/file1.js', '/path/to/file2.js')
	,'setExpires' => (time() + 86400 * 365)
));

The above creates an instance of Minify_Controller_Files, which creates 
source objects from the 'files' option, and supplies other default options. 

MINIFY USAGE 

Example 1 shows an example of using Minify to serve external CSS and JS files
with far-off Expires headers. Clients will always have up-to-date versions
because Minify_Build is used to time stamp the URLs.

FILE ENCODINGS

Minify *should* work fine with files encoded in UTF-8 or other 8-bit 
encodings like ISO 8859/Windows-1252. Leading UTF-8 BOMs are stripped from
all sources to prevent duplication in output files.
Description
No description provided
Readme 3.1 MiB
Languages
PHP 78.2%
CSS 11.2%
JavaScript 7%
HTML 3.1%
Less 0.3%
Other 0.2%