Squeezer is a minifier for php class files. It will parse your directories to find valid classes, interfaces and traits and squeeze them to one file. Autoloading in php is quite nice but also expensive. Sometimes too expensive for production. Using a minified file reduces the execution time of your application but increases the memory usage. Take care which directories or packages you want to squeeze. For production you should only squeeze used packages.
The recommended way to install
mamuz/squeezer
is through
composer by adding dependency to your composer.json
:
{
"require-dev": {
"mamuz/squeezer": "0.*"
}
}
- Minify classes, interfaces and traits to one compressed file.
- Validates availability of class dependencies.
- Removing comments and docblocks is optional to keep interoperability to annotation parser.
- PHP files with more than one class, interface or trait declarations will be skipped.
- PHP files with
include
,include_once
,require
orrequire_once
statements will be skipped. - PHP files with function calls to handle files like
fopen
ormkdir
will be skipped. - PHP files with a
declare
statement will be skipped.
Run this command line to squeeze your library without comments to classes.min.php
:
./vendor/bin/squeeze classes.min.php --source="module/*/src, vendor/zendframework/*/src" --exclude="zend-loader" --nocomments
For instance, we are using a typical ZendFramework Application, but you can adapt this command to each environment
After that you can include classes.min.php
inside your index.php
, but before loading composer autoloader.
For instance...
//...
include_once 'classes.min.php';
include_once 'vendor/autoload.php'; // composer autoloader
//...
Use this command to get synopsis about all arguments
./vendor/bin/squeeze --help