🐛 A tool that can speed up linting of php files by running several lint processes at once.
Clone or download
Latest commit 32535da Jan 4, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin Bugfix. #27 Dec 27, 2017
src Update version number. Jan 4, 2019
.gitignore Bugfix. #27 Dec 28, 2017
.php_cs Bugfix. #27 Dec 28, 2017
.phplint.yml Add phpline.yml Jul 27, 2016
.travis.yml Remove HHVM. Nov 9, 2018
LICENSE PHP >= 5.5.9 Jul 26, 2016
README.md Fixed #55 Dec 17, 2018
composer.json Make symfony/console 3.2.0 minimal requirement Apr 29, 2018

README.md

PHPLint

`phplint` is a tool that can speed up linting of php files by running several lint processes at once.

artboard 1

StyleCI Build Status Latest Stable Version Total Downloads Latest Unstable Version License Scrutinizer Code Quality FOSSA Status

Installation

$ composer require overtrue/phplint --dev -vvv

Usage

CLI

Usage:
  phplint [options] [--] [<path>]...

Arguments:
  path                               Path to file or directory to lint.

Options:
      --exclude=EXCLUDE              Path to file or directory to exclude from linting (multiple values allowed)
      --extensions=EXTENSIONS        Check only files with selected extensions (default: php)
  -j, --jobs=JOBS                    Number of parraled jobs to run (default: 5)
  -c, --configuration=CONFIGURATION  Read configuration from config file (default: ./.phplint.yml).
      --no-configuration             Ignore default configuration file (default: ./.phplint.yml).
      --no-cache                     Ignore cached data.
      --cache=CACHE                  Path to the cache file.
      --json[=JSON]                  Output JSON results to a file.
  -h, --help                         Display this help message
  -q, --quiet                        Do not output any message
  -V, --version                      Display this application version
      --ansi                         Force ANSI output
      --no-ansi                      Disable ANSI output
  -n, --no-interaction               Do not ask any interactive question
  -v|vv|vvv, --verbose               Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
Help:
 Lint something

example:

$ ./vendor/bin/phplint ./ --exclude=vendor

You can also define configuration as a file .phplint.yml:

path: ./
jobs: 10
cache: build/phplint.cache
extensions:
  - php
exclude:
  - vendor
$ ./vendor/bin/phplint

By default, the command will read configuration from file .phplint.yml of path specified, you can custom the filename by option: --configuration=FILENAME or -c FILENAME;

If you want to disable the config file, you can add option --no-configuration.

Program

use Overtrue\PHPLint\Linter;

$path = __DIR__ .'/app';
$exclude = ['vendor'];
$extensions = ['php'];

$linter = new Linter($path, $exclude, $extensions);

// get errors
$errors = $linter->lint();

//
// [
//    '/path/to/foo.php' => [
//          'error' => "unexpected '$key' (T_VARIABLE)",
//          'line' => 168,
//          'file' => '/path/to/foo.php',
//      ],
//    '/path/to/bar.php' => [
//          'error' => "unexpected 'class' (T_CLASS), expecting ',' or ';'",
//          'line' => 28,
//          'file' => '/path/to/bar.php',
//      ],
// ]

License

MIT

FOSSA Status