-
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-minifyFor 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.jsbased 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
readoption tofalsewhen 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 {phpMinify} from '@cedx/gulp-php-minify';
import gulp from 'gulp';
gulp.task('compressPhp', () => gulp.src('path/to/**/*.php', {read: false})
.pipe(phpMinify({binary: String.raw`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
safemode: 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
fastmode: as its name implies, this mode is very fast, but it is not very reliable. It spawns a PHP web server that processes the input files, but on some systems this fails. This mode requires a PHP runtime version 7.2 or later.
import {phpMinify, TransformMode} from '@cedx/gulp-php-minify';
import gulp from 'gulp';
gulp.task('compressPhp', () => gulp.src('path/to/**/*.php', {read: false})
.pipe(phpMinify({mode: TransformMode.fast}))
.pipe(gulp.dest('path/to/out'))
);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 {phpMinify} from '@cedx/gulp-php-minify';
import gulp from 'gulp';
gulp.task('compressPhp', () => gulp.src('path/to/**/*.php', {read: false})
.pipe(phpMinify({silent: true}))
.pipe(gulp.dest('path/to/out'))
);