Download the PHP package rudrax/magicmin without Composer

On this page you can find all versions of the php package rudrax/magicmin. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package magicmin

Magic Minifier

MagicMin is a PHP based javascript and stylesheet minification and merging class.

This class is designed to generate minified, merged, and automatically updating files to simplify the process of minified file usage and updating when going between production and development environments.

This class has four primary functions:

  1. Minification of single files
    • $class->minify( 'sourcefile', 'outputfile', 'version' );
  2. Merging and minifying the contents of whole directories
    • $class->merge( 'outputfile', 'directory', 'type [css, js]', array( 'items to exclude' ), array( 'files to merge and minify in order' ) );
    • The output and minification may be specifically ordered by using the fifth and last parameter, with files passed as an array
    • Only the files necessary to be prioritized here, and not every file in the directory
  3. Encoding image file data, replacing external image references within CSS
    • Only applies to CSS files
    • Default is false (image references are retained) (See "Basic Usage, item #1")
  4. Providing generated assets using gzip with specified cache control
    • zlib Must exist and be enabled, otherwise no gzip will be used
    • Default expires set to 30 days (60 x 60 x 24 x 31)

This class uses filemtime to determine if and when the minified version should be recreated, and will only create a new minified file IF a file selected for inclusion in the minify or merge functions is newer than the previously created minified file

Files that contain ".min." in the filename will not have their contents minified, but will still have their contents returned and added to compiled files as normal, as it SHOULD be assumed that those files have already been minified.

Full usage examples are included in example.php, and this package is included with the jqueryui styles in /base, as well as a few misc javascript and bootstrap files for testing.

Regular expressions and str_replace operators were removed 15-Jun-2013 for javascript minification due to inconsistencies, and have been replaced with:

  1. JsMin as the default
    • If the jsmin.php file is not found in the same directory as class.magic-min.php, it will be retrieved from github and created in the same directory
    • JsMin is the default minification package used for javascript
  2. Google Closure
    • To use google closure, add 'closure' => true to the class initation

Basic Usage

First, include and initiate the class. The class has been updated to use an array with up to 4 key -> value pairs, all accept boolean values or can be omitted entirely:

  1. Base64 encoded images (local or remote) can automatically replace file references during generation. This applies only to CSS files.
    • 'encode' => true/false (default is false)
    • url() type file paths beginning with "http" or "https" are retrieved and encoded using cURL as opposed to file_get_contents for local files
  2. Echo the resulting generated file path, or return to use as a variable
    • 'echo' => true/false (default is true)
  3. Output the total execution time
    • 'timer' => true/false (default is false)
    • Set as part of __destruct to log to the javascript console, adjust as necessary
  4. Output minified/merged assets using gzip with cache control
    • 'gzip' => true/false (default is false)
  5. Use the Google Closure API as opposed to jsmin (jsmin is default)
    • 'closure' => true (default is false)

Output a single minified stylesheet

Output a single minified javascript file (will output as js/autogrow.min.js)

Merge and minify the contents of an entire directory

Advanced Usage

Output a minified stylesheet with a specified filename and ?v= param

Output a minified javascript file with [filename].min.js name, and ?v=1.8 param

Retrieve the contents of all javascript files in the /js directory as master.min.js (excluding the ones above)

Get all the stylesheets in a directory and make a single minified stylesheet (excluding the ones used above)

Viewing actions taken by MagicMin

To provide more transparency, the "logs()" function has been added, and can output console.log messages to the page where MagicMin is used to be viewed in the source code of the page, or within the javascript console.

If used, this function should only be requested after all other output has taken place by the magicmin script, ie...

Which would output to the console something such as:

Specifying the order of included files when using "merge"

Since it's simply not practical to assume glob() is going to determine dependencies, a fifth parameter exists for the merge() function.

In order to specify the order, you only need to specify the files that need to be ordered. You do not need to specify all the files in the directory, the function will automatically prioritize the files passed into the $order parameter.

Including ONLY specified files in order, disregarding all others

As of 13-Jun-2013, the 3rd parameter of the ->merge() function will now accept an array of files to include. Files are included in the order specified in the array.

When using an array as the 3rd parameter (as opposed to the "css" or "js" file type), DO NOT include further parameters as this will create possible conflict.

NOTE: Files must be the same type (css or js) as different file types will not play nice in the output

Usage within wordpress

Since many MVC frameworks such as wordpress use full URIs to stylesheets and javascript files, it is helpful to first create a variable containing the absolute path to the header.php file, and ensure that the Minifier initiation is set with echo to false.

For example (within header.php):

Then perform a str_replace operation to regenerate the URI to the stylesheets or javascript files:

Which would in turn output the correct URI to the stylesheet:


All versions of magicmin with dependencies

PHP Build Version
Package Version
Requires php Version >=5.3.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package rudrax/magicmin contains the following files

Loading the files please wait ....