

node-phplint
A simple node wrapper to run php -l
in parallel.
Running find . -type f -name "*.php" | xargs -n 1 php -l
in a brand new
Laravel project (with dependencies) took 1m 32s to find its first error. Running phplint '**/*.php'
in the same project took 37s to find the same error.
CLI
$ npm install --global phplint
$ phplint '**/*.php'
node-phplint uses globby for globbing filenames, so the following would work as well:
$ phplint '**/*.php' '!vendor/**'
Node
var phplint = require('phplint').lint;
lint(['src/**/*.php'], function (err, stdout, stderr) {
if (err) throw new Error(err);
process.stdout.write(stdout);
process.stderr.write(stderr);
});
NPM
{
"scripts": {
"pretest": "phplint 'src/**/*.php'"
},
"devDependencies": {
"phplint": "~1.0.0"
}
}
$ npm test
Grunt
module.exports = function(grunt) {
require('phplint').gruntPlugin(grunt);
grunt.initConfig({
phplint: {
options: {
limit: 10,
phpCmd: '/home/scripts/php',
stdout: true,
stderr: true
},
files: 'src/**/*.php'
}
});
grunt.registerTask('test', ['phplint']);
};
$ grunt test
Gulp
var gulp = require('gulp');
var phplint = require('phplint').lint;
gulp.task('phplint', function(cb) {
phplint(['src/**/*.php'], {limit: 10}, function (err, stdout, stderr) {
if (err) {
cb(err);
process.exit(1);
}
cb();
});
});
gulp.task('test', ['phplint']);
$ gulp test
License
MIT © Wayne Ashley Berry