Skip to content
Cédric Belin edited this page Mar 23, 2023 · 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 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"));
}

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 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.

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 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"));
}

See also

Clone this wiki locally