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:
parent
5da955966b
commit
b7cf3808d7
56
README.md
56
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
|
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
61
docs/Install.wiki.md
Normal 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
11
example.index.php
Normal 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();
|
@ -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;
|
||||||
|
@ -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
|
||||||
*/
|
*/
|
||||||
|
@ -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
|
||||||
*/
|
*/
|
||||||
|
@ -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
|
||||||
*/
|
*/
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user