Skip to content
Cédric Belin edited this page May 6, 2022 · 17 revisions

Gulp plug-in minifying PHP source code by removing comments and whitespace.

Quick start

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.

Usage

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.

Programming interface

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 to false when providing the file list, and you should not have any other plug-in before it.

Options

binary: string = "php"

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'))
);

mode: TransformMode = "safe"

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 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'))
);

silent: boolean = false

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'))
);

See also

Clone this wiki locally