-
Notifications
You must be signed in to change notification settings - Fork 7
Home
Gulp plug-in minifying PHP source code by removing comments and whitespace.
Install the latest version of Gulp-PHP-Minify with npm package manager:
npm install @cedx/gulp-php-minify
For detailed instructions, see the installation guide.
If you haven't used Gulp before, be sure to check out the related documentation, as it explains how to create a gulpfile.js
, as well as install and use plug-ins.
Once you're familiar with that process, you may install the plug-in.
Caution: this plug-in uses the syntax of ECMAScript modules exclusively. It will not work in a
gulpfile.js
based on the syntax of CommonJS modules.
The plug-in takes a list of PHP scripts as input, and removes the comments and whitespace in these files by applying the php_strip_whitespace()
function on their contents:
import gulp from "gulp";
import phpMinify from "@cedx/gulp-php-minify";
export function compressPhp() {
return gulp.src("path/to/**/*.php", {read: false})
.pipe(phpMinify())
.pipe(gulp.dest("path/to/out"));
}
Caution: the plug-in only needs the file paths, so you should specify the
read
option tofalse
when providing the file list, and you should not have any other plug-in before it.
The plug-in relies on the availability of the PHP executable on the target system. By default, the plug-in will use the php
binary found on the system path.
If the plug-in cannot find the default php
binary, or if you want to use a different one, you can provide the path to the php
executable by using the binary
option:
import gulp from "gulp";
import phpMinify from "@cedx/gulp-php-minify";
export function compressPhp() {
return gulp.src("path/to/**/*.php", {read: false})
.pipe(phpMinify({binary: "C:\\Program Files\\PHP\\php.exe"}))
.pipe(gulp.dest("path/to/out"));
}
The plug-in can work in two manners, which can be selected using the mode
option:
- the
safe
mode: as its name implies, this mode is very reliable. But it is also very slow as it spawns a new PHP process for every file to be processed. This is the default mode. - the
fast
mode: as its name implies, this mode is very fast, but it is not always reliable. It spawns a PHP web server that processes the input files, but on some systems this fails.
import gulp from "gulp";
import phpMinify from "@cedx/gulp-php-minify";
export function compressPhp() {
return gulp.src("path/to/**/*.php", {read: false})
.pipe(phpMinify({mode: "fast"}))
.pipe(gulp.dest("path/to/out"));
}
The plug-in defaults to the safe mode, but you should really give a try to the fast one. The difference is very noticeable.
By default, the plug-in prints to the standard output the paths of the minified scripts. You can disable this output by setting the silent
option to true
.
import gulp from "gulp";
import phpMinify from "@cedx/gulp-php-minify";
export function compressPhp() {
return gulp.src("path/to/**/*.php", {read: false})
.pipe(phpMinify({silent: true}))
.pipe(gulp.dest("path/to/out"));
}