Skip to content
Permalink
Browse files

Improves README and add install doc page

Shows how to install as a composer dependency
  • Loading branch information...
mrclay committed Apr 2, 2016
1 parent 5da9559 commit b7cf3808d759060ee2431f8f0e4c832460dd378a
Showing with 98 additions and 46 deletions.
  1. +13 −43 README.md
  2. +61 −0 docs/Install.wiki.md
  3. +11 −0 example.index.php
  4. +5 −0 lib/Minify/App.php
  5. +1 −1 quick-test.css
  6. +1 −1 quick-test.js
  7. +1 −1 quick-test.less
  8. +5 −0 quick-testinc.less
@@ -1,5 +1,4 @@
Welcome to Minify!
==================
# Welcome to Minify!

Minify is an HTTP server for JS and CSS assets. It compresses and combines files
and serves it with appropriate headers, allowing conditional GET or long-Expires.
@@ -12,46 +11,25 @@ The stats above are from a [brief walkthrough](http://mrclay.org/index.php/2008/

Relative URLs in CSS files are rewritten to compensate for being served from a different directory.

Wordpress User?
---------------
## Support

Post to the [Google Group](http://groups.google.com/group/minify).

### Wordpress User?

Consider instead using a dedicated WordPress plugin for more deep integration and simpler installation. E.g.:
- [BWP Minify](http://wordpress.org/extend/plugins/bwp-minify/)
- [W3 Total Cache](http://wordpress.org/extend/plugins/w3-total-cache/)

Unfortunately we can't support the WordPress plugins here.

Installation
------------

Installation requires PHP 5.3+, SSH access, and access to tools like `git` and `composer` or the privileges to install them.

```bash
cd /path/to/public_html
git clone https://github.com/mrclay/minify.git min
cd min
composer install --no-dev
```

What this does:
## Installation

1. Inside your DOCUMENT_ROOT directory, we clone this repo. Otherwise you may [download](https://github.com/mrclay/minify/archive/master.zip) and extract the zip file.
1. We rename this directory `min`. E.g. You will have something like: `/home/example/public_html/min`
1. We `cd` into it and run `composer install` to install the dependencies.
See the [install guide](https://github.com/mrclay/minify/blob/master/docs/Install.wiki.md).

You can verify that it is working by visiting these two URLs:

* http://example.org/min/?f=min/quick-test.js
* http://example.org/min/?f=min/quick-test.css
## Configuration & Usage

If your server supports mod_rewrite, this URL should also work:

* http://example.org/min/f=min/quick-test.js

Configuration & Usage
---------------------

See the [user guide](https://github.com/mrclay/minify/blob/master/docs/UserGuide.wiki.md)!
See the [user guide](https://github.com/mrclay/minify/blob/master/docs/UserGuide.wiki.md).

Minify also comes with a [URI Builder application](https://github.com/mrclay/minify/blob/master/docs/BuilderApp.wiki.md) that can help you write URLs
for use with Minify or configure groups of files.
@@ -60,26 +38,18 @@ See the [cookbook](https://github.com/mrclay/minify/blob/master/docs/CookBook.wi

More [docs are available](https://github.com/mrclay/minify/tree/master/docs).

Support
-------

[Google Group](http://groups.google.com/group/minify)

Unit Testing
------------
## Unit Testing

1. Install dev deps via Composer: `composer install`
1. `composer test` or `phpunit`

Warnings
--------
## Warnings

* Minify is designed for efficiency, but, for very high traffic sites, it will probably serve files slower than your HTTPd due to the CGI overhead of PHP. See the [FAQ](https://github.com/mrclay/minify/blob/master/docs/FAQ.wiki.md#how-fast-is-it) and [CookBook](https://github.com/mrclay/minify/blob/master/docs/CookBook.wiki.md) for more info.
* If you combine a lot of CSS, watch out for [IE's 4096 selectors-per-file limit](http://stackoverflow.com/a/9906889/3779), affects IE 6 through 9.
* Minify *should* work fine with files encoded in UTF-8 or other 8-bit encodings like ISO 8859/Windows-1252. By default Minify appends ";charset=utf-8" to the Content-Type headers it sends.

Acknowledgments
---------------
## Acknowledgments

Minify was inspired by [jscsscomp](http://code.google.com/p/jscsscomp/) by Maxim Martynyuk and by the article [Supercharged JavaScript](http://www.hunlock.com/blogs/Supercharged_Javascript) by Patrick Hunlock.

@@ -0,0 +1,61 @@
# Installation

Minify requires PHP 5.3+, `git`, and `composer`.

## Typical Installation

Clone the project into the `min/` directory inside your document root and install its dependencies:

```bash
cd /path/to/public_html
git clone https://github.com/mrclay/minify.git min
cd min
composer install --no-dev
```

**Note:** If you do this on localhost, make sure the `min/vendor/` directory gets deployed to production.

## Installing as a composer dependency

Add `"mrclay/minify": "~3.0.0"` to your site's composer.json, and `composer install`.

The following assumes your `vendor` directory is in your document root. Adjust the `MINIFY` path as needed:

```bash
cd /path/to/public_html
mkdir min
MIN=min/
MINIFY=vendor/mrclay/minify/
cp ${MINIFY}example.index.php ${MIN}index.php
cp ${MINIFY}.htaccess ${MIN}
cp ${MINIFY}config.php ${MIN}
cp ${MINIFY}groupsConfig.php ${MIN}
cp ${MINIFY}quick-test.js ${MIN}
cp ${MINIFY}quick-test.css ${MIN}
```

Edit `min/index.php` to remove the ``die()`` statement and adjust the `vendor` path as needed.

**Note:** This does not install the [URL builder](https://github.com/mrclay/minify/blob/master/docs/BuilderApp.wiki.md), but it's not necessary for operation.

## Verifing it works

You can verify it works via these two URLs:

* http://example.org/min/?f=min/quick-test.js
* http://example.org/min/?f=min/quick-test.css

If your server supports mod_rewrite, the `?` are not necessary:

* http://example.org/min/f=min/quick-test.js
* http://example.org/min/f=min/quick-test.css

## Having trouble?

Write the [Google Group](http://groups.google.com/group/minify) for help.

## More links

* [Usage instructions](https://github.com/mrclay/minify/blob/master/docs/UserGuide.wiki.md)
* [Cookbook](https://github.com/mrclay/minify/blob/master/docs/CookBook.wiki.md) for more advanced options
* [All docs](https://github.com/mrclay/minify/tree/master/docs)
@@ -0,0 +1,11 @@
<?php
// template file for creating your own Minify endpoint
// remove this
die('disabled');
// adjust this path as necessary
require __DIR__ . '/../vendor/autoload.php';
$app = new \Minify\App(__DIR__);
$app->runServer();
@@ -24,6 +24,11 @@
*/
class App extends Container {
/**
* Constructor
*
* @param string $dir Directory containing config files
*/
public function __construct($dir)
{
$that = $this;
@@ -1,4 +1,4 @@
/*! This file exists only for testing a Minify installation. It's content is not used.
/*! This file exists only for testing a Minify installation. Its content is not used.
*
* http://example.org/min/f=min/quick-test.css
*/
@@ -1,4 +1,4 @@
/*! This file exists only for testing a Minify installation. It's content is not used.
/*! This file exists only for testing a Minify installation. Its content is not used.
*
* http://example.org/min/f=min/quick-test.js
*/
@@ -1,4 +1,4 @@
/*! This file exists only for testing a Minify installation. It's content is not used.
/*! This file exists only for testing a Minify installation. Its content is not used.
*
* http://example.org/min/f=min/quick-test.less
*/
@@ -1,3 +1,8 @@
/*! This file exists only for testing a Minify installation. Its content is not used.
*
* http://example.org/min/f=min/quick-test.less
*/

@base: 24px;
@border-color: #B2B;

0 comments on commit b7cf380

Please sign in to comment.
You can’t perform that action at this time.