From b7cf3808d759060ee2431f8f0e4c832460dd378a Mon Sep 17 00:00:00 2001 From: Steve Clay Date: Sat, 2 Apr 2016 11:46:29 -0400 Subject: [PATCH] Improves README and add install doc page Shows how to install as a composer dependency --- README.md | 56 ++++++++++------------------------------ docs/Install.wiki.md | 61 ++++++++++++++++++++++++++++++++++++++++++++ example.index.php | 11 ++++++++ lib/Minify/App.php | 5 ++++ quick-test.css | 2 +- quick-test.js | 2 +- quick-test.less | 2 +- quick-testinc.less | 5 ++++ 8 files changed, 98 insertions(+), 46 deletions(-) create mode 100644 docs/Install.wiki.md create mode 100644 example.index.php diff --git a/README.md b/README.md index b360294..83a22af 100644 --- a/README.md +++ b/README.md @@ -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,8 +11,11 @@ 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/) @@ -21,37 +23,13 @@ Consider instead using a dedicated WordPress plugin for more deep integration an Unfortunately we can't support the WordPress plugins here. -Installation ------------- +## Installation -Installation requires PHP 5.3+, SSH access, and access to tools like `git` and `composer` or the privileges to install them. +See the [install guide](https://github.com/mrclay/minify/blob/master/docs/Install.wiki.md). -```bash -cd /path/to/public_html -git clone https://github.com/mrclay/minify.git min -cd min -composer install --no-dev -``` +## Configuration & Usage -What this does: - -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. - -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 - -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. diff --git a/docs/Install.wiki.md b/docs/Install.wiki.md new file mode 100644 index 0000000..e10c839 --- /dev/null +++ b/docs/Install.wiki.md @@ -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) diff --git a/example.index.php b/example.index.php new file mode 100644 index 0000000..1f7a1cc --- /dev/null +++ b/example.index.php @@ -0,0 +1,11 @@ +runServer(); diff --git a/lib/Minify/App.php b/lib/Minify/App.php index f018460..014f149 100644 --- a/lib/Minify/App.php +++ b/lib/Minify/App.php @@ -24,6 +24,11 @@ use Psr\Log\LoggerInterface; */ class App extends Container { + /** + * Constructor + * + * @param string $dir Directory containing config files + */ public function __construct($dir) { $that = $this; diff --git a/quick-test.css b/quick-test.css index 2d9e402..9823d5b 100644 --- a/quick-test.css +++ b/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.css */ diff --git a/quick-test.js b/quick-test.js index eceb358..c0bd64c 100644 --- a/quick-test.js +++ b/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.js */ diff --git a/quick-test.less b/quick-test.less index 0704552..d7169de 100644 --- a/quick-test.less +++ b/quick-test.less @@ -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 */ diff --git a/quick-testinc.less b/quick-testinc.less index c1c33bc..a68184b 100644 --- a/quick-testinc.less +++ b/quick-testinc.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;