jimbocoder / phplint

⚡Lightning fast php linting!

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

phplint

phplint is a node wrapper around the native php linter that allows for parallel linting and integration with build systems like Grunt, Gulp and more.

npm Build Status js-standard-style Dependency Status devDependency Status

Usage

CLI

$ npm i -g phplint
$ phplint '**/*.php'

Paths and filenames are parsed using globby, so the following would work as well:

$ phplint '**/*.php' '!vendor/**'

Node

var phplint = require('phplint').lint

phplint(['src/**/*.php'], function (err, stdout, stderr) {
  if (err) throw new Error(err)

  process.stdout.write(stdout)
  process.stderr.write(stderr)

  // success!
})

NPM

{
  "scripts": {
    "pretest": "phplint 'src/**/*.php'"
  },
  "devDependencies": {
    "phplint": "~1.0.0"
  }
}
$ npm test

Grunt

Configure cache directories

This module uses the cache-swap module to cache already linted files. You can configure the cache directories via the cacheDirName and the tmpDir options. Both options will be passed to the CacheSwap instance when created.

module.exports = function (grunt) {
  require('phplint').gruntPlugin(grunt)

  grunt.initConfig({
    phplint: {
      options: {
        limit: 10,
        phpCmd: '/home/scripts/php', // Defaults to php
        stdout: true,
        stderr: true,
        tmpDir: '/custom/root/folder', // Defaults to os.tmpDir()
        cacheDirName: 'custom/subfolder' // Defaults to php-lint
      },
      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

About

⚡Lightning fast php linting!


Languages

Language:JavaScript 99.2%Language:PHP 0.8%