1
0
mirror of https://github.com/mrclay/minify.git synced 2025-01-16 20:58:13 +01:00

Improves README and add install doc page

Shows how to install as a composer dependency
This commit is contained in:
Steve Clay 2016-04-02 11:46:29 -04:00
parent 5da955966b
commit b7cf3808d7
8 changed files with 98 additions and 46 deletions

View File

@ -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 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. 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. 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.: 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/) - [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. 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 ## Configuration & Usage
cd /path/to/public_html
git clone https://github.com/mrclay/minify.git min
cd min
composer install --no-dev
```
What this does: See the [user guide](https://github.com/mrclay/minify/blob/master/docs/UserGuide.wiki.md).
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)!
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 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. 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). More [docs are available](https://github.com/mrclay/minify/tree/master/docs).
Support ## Unit Testing
-------
[Google Group](http://groups.google.com/group/minify)
Unit Testing
------------
1. Install dev deps via Composer: `composer install` 1. Install dev deps via Composer: `composer install`
1. `composer test` or `phpunit` 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. * 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. * 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. * 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. 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.

61
docs/Install.wiki.md Normal file
View File

@ -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)

11
example.index.php Normal file
View File

@ -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();

View File

@ -24,6 +24,11 @@ use Psr\Log\LoggerInterface;
*/ */
class App extends Container { class App extends Container {
/**
* Constructor
*
* @param string $dir Directory containing config files
*/
public function __construct($dir) public function __construct($dir)
{ {
$that = $this; $that = $this;

View File

@ -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 * http://example.org/min/f=min/quick-test.css
*/ */

View File

@ -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 * http://example.org/min/f=min/quick-test.js
*/ */

View File

@ -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 * http://example.org/min/f=min/quick-test.less
*/ */

View File

@ -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; @base: 24px;
@border-color: #B2B; @border-color: #B2B;