Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Phplint Laravel Package

overtrue/phplint

PHPLint is a fast PHP linting tool that runs multiple lint processes in parallel, speeding up code checks for large projects. Install via Composer, PHAR, Docker, or Phive, and configure it to fit your workflow.

View on GitHub
Deep Wiki
Context7
9.8.0

9.8.0 - 2026-10-19

Goals

  • Have in minds to reduce vendor dependencies, as much as possible.
  • Load extensions/plugins on demand.
  • Have User Experience migration as smooth as possible.

Do not hesitate to read the FAQ and the Migration Guide.

Highlights

  • Parallel Processing: Speed up analysis on large codebases using the CPU auto-detection of fidry/cpu-core-counter package or use the -j,--job flag.

  • The lint command is now modernized and use the Symfony invokable syntax.

  • The Console Argument Resolvers introduced with Symfony 8.1 is now available in a compatible format for PHP 8.2 / Symfony 7.4 LTS, and PHP 8.4+ / Symfony 8.1

  • A new Extension Architecture was introduced with five basic extensions/plugins :

    • CacheManager to handle all cached results runs (using symfony/cache package).

      Read the Cache Manager User Guide and learn more on architecture, if you want to contribute or adapt behaviors with the Developer Guide.

    • DiagnoseManager to output diagnostic information either after running the lint command, or just with the diagnose command.

      Read the Diagnose Manager User Guide and learn more on architecture, if you want to contribute or adapt behaviors with the Developer Guide.

    • OutputManager to handle results in different formats: console (default), sarif, checkstyle, junit, json.

      Read the Output Manager User Guide and learn more on architecture, if you want to contribute or adapt behaviors with the Developer Guide.

    • ProfileManager to output a mini profiler information to identify what resources are consumed by PHPLint.

      Read the Profile Manager User Guide and learn more on architecture, if you want to contribute or adapt behaviors with the Developer Guide.

    • ProgressManager to handle all progress bars format: auto (default) , dots, bar, indicator.

      Read the Progress Manager User Guide and learn more on architecture, if you want to contribute or adapt behaviors with the Developer Guide.

Changes since RC-2

  • Commit a81901a : Fixed the project autoloader to be compatible with global _composer_autoload_path variable defined by Composer bin proxy
  • Commit 7dc1d5d : Fixed a PHP error when cache_manager is not loaded and cache is asked
  • Commit 6ccc8e0 : PHAR distribution do not check anymore the requirement before to run on a platform
  • Commit 013ec7c : to help PHPLint 9.7 users to migrate easily to new version 9.8
  • Commit 7d109f7 : restore the cache option for a smooth migration for PHPLint 9.7 users
  • Commit 8a973bc : collect and show all deprecations triggered by symfony/deprecation-contracts package
  • Commit 8ece9ed : Fixed PathValueResolver for exclude parameter that should not be realpath resolved
  • Commit 05fa0b8 : introduces the new VarDumpHelper for debugging purpose only
  • Commit 1dc7edf : the logger instance is now inject directly into the Application Class Constructor
  • Commit b596c75 : default colors skin is moved outside application to be able to initialize them on the new ConsoleLogger class

Changes since RC-3

  • Commit 8f9ae8d : The profiler may be enabling with the profile mode (PLINT_MODE=profile)
  • Commit cd6325a : The profiler may now be disabled even on legacy mode
  • Commit b55f445 : Restore the extensions legacy option for a smooth UX
  • Commit fc8ec7d : Raise deprecations when running phplint with obsolete options
  • Commit 59b5b5f : Use semantic rather than pretty string for short version identification
  • Commit 0b006bb : Use Git tag, if possible, to identify current version
  • Commit 9ca9b71 : The diagnose command is able to print information about the caching feature (use PLINT_DIAGNOSTIC=cache)
  • Commit f064b2b : Fixed a regression with caching feature since first RC
  • Commit 95a4e78 : Introduces EventAwareInterface contract and extracted code from AbstractManager (to new EventAwareTrait)
  • Commit c90e1a0 : Allows to exclude some metadata from a collection

Full Changelog: 9.8.0-rc.3...9.8.0

9.7.3

9.7.3 - 2026-10-17

This version is the last one on branch 9.7. Next one is the final stable 9.8.0

This is a maintenance version without features changes since version 9.7.2

Changed

  • #256 : Better Application Version identification
  • bump actions/checkout GH action from v6 to v7.0.1
  • bump actions/upload-artifact GH action from v4 to v7.0.1
  • bump docker/build-push-action GH action from v6 to v7.4.0
  • bump docker/login-action GH action from v3 to v4.6.0
  • bump docker/setup-buildx-action GH action from v3 to v4.4.1
  • bump docker/setup-qemu-action GH action from v3 to v4.4.0
  • bump ramsey/composer-install GH action from v3 to 4.0.0
  • bump shivammathur/setup-php GH action from v2 to 2.37.2
  • bump the most recent BOX version from 4.6 to 4.7
  • simplify jetbrains/phpstorm-stubs dependency constraint (keep always the most up-to-date stable version)

Fixed

  • benchmark GH workflow is now Symfony/Console 8.0+ compatible

Full Changelog: 9.7.2...9.7.3

9.8.0-rc.2

9.8.0-rc.2 - 2026-10-09

This second release candidate of the new version 9.8 follows changes accordingly to the ROADMAP.

Any feedback will be greatly appreciated.

And if you want to help/contribute to make PHPLint 9.8 more stable, do not hesitate to add new report with title prefixed by 9.8 |

[!IMPORTANT] If your issue/report contains contextual information (to identify more easily the problem), please provide the output of the diagnose command, or diagnostic printed after the lint command execution.

Remember you can add what you want (with PLINT_DIAGNOSTIC environment variable). Read the Diagnose Manager user Guide to learn more.

You may also read the FAQ if you begin with this version, or just migrate from version 9.7.x

Highlights in this pre-version

A benchmark report is available between version 9.7.2 and 9.8.0-rc.2

  • Commit a81901a : Fixed the project autoloader to be compatible with global _composer_autoload_path variable defined by Composer bin proxy
  • Commit 7dc1d5d : Fixed a PHP error when cache_manager is not loaded and cache is asked
  • Commit 6ccc8e0 : PHAR distribution do not check anymore the requirement before to run on a platform
  • Commit 013ec7c : to help PHPLint 9.7 users to migrate easily to new version 9.8
  • Commit 7d109f7 : restore the cache option for a smooth migration for PHPLint 9.7 users
  • Commit 8a973bc : collect and show all deprecations triggered by symfony/deprecation-contracts package
  • Commit 8ece9ed : Fixed PathValueResolver for exclude parameter that should not be realpath resolved
  • Commit 05fa0b8 : introduces the new VarDumpHelper for debugging purpose only
  • Commit 1dc7edf : the logger instance is now inject directly into the Application Class Constructor
  • Commit b596c75 : default colors skin is moved outside application to be able to initialize them on the new ConsoleLogger class

Full Changelog: 9.8.0-rc.1...9.8.0-rc.2

9.8.0-rc.1

9.8.0-rc.1 - 2026-09-23

This first release candidate of the new version 9.8 follows changes accordingly to the ROADMAP.

Any feedback will be greatly appreciated.

And if you want to help/contribute to make PHPLint 9.8 more stable, do not hesitate to add new report with title prefixed by 9.8 |

[!IMPORTANT] If your issue/report contains contextual information (to identify more easily the problem), please provide the output of the diagnose command, or diagnostic printed after the lint command execution.

Remember you can add what you want (with PLINT_DIAGNOSTIC environment variable). Read the Diagnose Manager user Guide to learn more.

Highlights in this pre-version

  • The lint command is now modernized and use the Symfony invokable syntax.

  • The Console Argument Resolvers introduced with Symfony 8.1 is now available in a compatible format for PHP 8.2 / Symfony 7.4 LTS, and PHP 8.4 / Symfony 8.1

  • With in minds to reach goal to reduce vendor dependencies, a new Extension Architecture was introduced with five basic extensions/plugins :

    • CacheManager to handle all cached results runs (using symfony/cache package).

      Read the Cache Manager User Guide and learn more on architecture, if you want to contribute or adapt behaviors with the Developer Guide.

    • DiagnoseManager to output diagnostic information either after running the lint command, or just with the diagnose command.

      Read the Diagnose Manager User Guide and learn more on architecture, if you want to contribute or adapt behaviors with the Developer Guide.

    • OutputManager to handle results in different formats: console (default), sarif, checkstyle, junit, json.

      Read the Output Manager User Guide and learn more on architecture, if you want to contribute or adapt behaviors with the Developer Guide.

    • ProfileManager to output a mini profiler information to identify what resources are consumed by PHPLint.

      Read the Profile Manager User Guide and learn more on architecture, if you want to contribute or adapt behaviors with the Developer Guide.

    • ProgressManager to handle all progress bars format: auto (default) , dots, bar, indicator.

      Read the Progress Manager User Guide and learn more on architecture, if you want to contribute or adapt behaviors with the Developer Guide.

Full Changelog: 9.7.2...9.8.0-rc.1

9.7.2

9.7.2 - 2026-06-03

Fixed

  • #224 : Linting the very same file in different file-system locations should re-use a single cache file

    Thanks to @StantonMatt for his contribution to fix this issue

  • #232 : Upgrade Dockerfile to use PHP 8.5 runtime

Full Changelog: 9.7.1...9.7.2

9.7.1

9.7.1 - 2025-11-29

Fixed

  • PHAR distribution by disabling BOX dump-autoload setting

Full Changelog: 9.7.0...9.7.1

9.6.3

9.6.3 - 2025-11-27

Fixed

  • #225 : Performance degradation on 9.x releases

Full Changelog: 9.6.2...9.6.3

9.6.2

9.6.2 - 2025-04-10

Added

  • lint command support now the new cache-dir option that replace the legacy cache option, marked as deprecated (and will be removed in next major version)

Changed

  • Remove support of a TTL = zero (store permanently) for the caching files syntax checking results

Full Changelog: 9.6.1...9.6.2

9.6.1

9.6.1 - 2025-04-09

Changed

  • default cache TTL value is now set to 1 hour (3600 seconds)

Fixed

  • ability to clear cache entries by invalidation with --cache-ttl option less than default TTL is in effect

Full Changelog: 9.6.0...9.6.1

9.6.0

9.6.0 - 2025-04-09

Added

Changed

  • drop support of PHPStan 1.x, raising min version to 2.0 now

Fixed

  • PHPUnit coverage code attributes usage

Full Changelog: 9.5.6...9.6.0

9.5.6

9.5.6 - 2025-01-15

Changed

  • Make this package PHP 8.1 compatible again to allow using Symfony Components 6.4 without getting deprecations notices, when running with a PHP 8.4 runtime : requested by @gnutix

  • Upgrade Dockerfile to use PHP 8.4 runtime

Full Changelog: 9.5.5...9.5.6

9.5.5

9.5.5 - 2024-12-08

Changed

  • upgrade SARIF output to support PhpLintConverter of bartlett/sarif-php-converters package

Full Changelog: 9.5.4...9.5.5

9.5.4

9.5.4 - 2024-11-01

[!WARNING]

Only versions 9.5.x or greater are now actively supported.

Versions 9.1, 9.2, 9.3, and 9.4 won't receive any updates as they reach end-of-life.

Changed

Drop PHPUnit 10 support and upgrade to PHPUnit 11

  • #216 : PHPUnit 11 support

Fixed

  • #215 : PHP 8.4 runtime support

Full Changelog: 9.5.3...9.5.4

9.1.3

9.1.3 - 2024-10-12

Fixed

  • #214 : junit invalid xml

Full Changelog: 9.1.2...9.1.3

9.2.1

9.2.1 - 2024-10-12

Fixed

  • #214 : junit invalid xml

Full Changelog: 9.2.0...9.2.1

9.3.2

9.3.2 - 2024-10-12

Fixed

  • #214 : junit invalid xml

Full Changelog: 9.3.1...9.3.2

9.4.2

9.4.2 - 2024-10-11

Fixed

  • #214 : junit invalid xml

Full Changelog: 9.4.1...9.4.2

9.5.3

9.5.3 - 2024-10-11

Fixed

  • #214 : junit invalid xml

Full Changelog: 9.5.2...9.5.3

9.5.2

9.5.2 - 2024-10-08

Same as 9.5.0 (except for GitHub Workflows that still used PHP 8.1)

Full Changelog: 9.5.0...9.5.2

9.4.1

9.4.1 - 2024-07-05

[!NOTE]

This bugfix version is only for the PHAR distribution.

Fixed

  • #210 : PHAR manifest is broken

Full Changelog: 9.4.0...9.4.1

9.4.0

9.4.0 - 2024-07-05

Added

  • #208 : Add support to more output formats
  • support to checkstyle format

Changed

  • support to sarif format is now optional. Requires to install extra package bartlett/sarif-php-converters.

[!NOTE]

sarif format is a good example of how to use custom format not provided by current PHPLint distribution. Read how to use it at https://github.com/llaville/sarif-php-converters/blob/1.0/docs/converter/phplint.md

Removed

  • legacy log-* and sarif-converter options
  • useless help column in configuration table when verbose mode is active

Fixed

  • shortcut of progress option is now detected on phplint binary launcher.

Full Changelog: 9.3.1...9.4.0

9.3.1

9.3.1 - 2024-05-17

Fixed

  • bootstrap option handling in wrong place

Full Changelog: 9.3.0...9.3.1

9.3.0

9.3.0 - 2024-05-16

Added

  • New bootstrap option to make it easier to load whatever you need before to run linter.
  • New example (examples/sarif_output.php) to show how to generate a SARIF report programmatically

Fixed

  • #206 : New autoloader does not respect custom vendor-dir configuration

Full Changelog: 9.2.0...9.3.0

9.2.0

9.2.0 - 2024-05-03

Added

  • #186 : Add SARIF output format

Changed

  • Reorganize binary launcher (bin/phplint) and autoloader (autoload.php replaced config/bootstrap.php)

Full Changelog: 9.1.2...9.2.0

9.1.2

9.1.2 - 2024-02-06

Fixed

  • #202 : composer config vendor-dir is ignored
  • #203 : Uncaught Error: Failed opening required "phar:///usr/local/bin/phplint/config/bootstrap.php"
  • #204 : PHPLint 9.1.1 is unable to interpret correctly command arguments/options

Full Changelog: 9.1.1...9.1.2

9.1.1

9.1.1 - 2024-02-05

Fixed

  • #200 : Unable to create file /github/home/.composer/config.json in GitHub Action
  • #201 : GitHub Action build docker on fly with wrong version

Full Changelog: 9.1.0...9.1.1

9.0.8

9.0.8 - 2024-02-05

IMPORTANT Do not use version 9.0.7 (wrong fixes for Docker targets, including GitHub Actions)

Fixed

  • #200 : Unable to create file /github/home/.composer/config.json in GitHub Action
  • #201 : GitHub Action build docker on fly with wrong version

Full Changelog: 9.0.6...9.0.8

9.0.7

9.0.7 - 2024-02-05

Fixed

  • #200 : Unable to create file /github/home/.composer/config.json in GitHub Action
  • #201 : GitHub Action build docker on fly with wrong version

Full Changelog: 9.0.6...9.0.7

9.1.0

9.1.0 - 2023-12-17

Added

  • PHPStan dev tool to enforce code quality of this project (see Contributor guide)
  • Introduces a DebugFormatterHelper for asynchronous process
  • Introduces a ProcessHelper for asynchronous process
  • Introduces a new extension (ProgressIndicator) to let users know that the phplint command isn't stalled. Uses --progress=indicator.

Changed

  • Replaces Symfony components constraint to new LTS (6.4), and drop support to old one (5.4)
  • ProgressPrinter and ProgressBar extensions must now implement the Overtrue\PHPLint\Output\ConsoleOutputInterface specification
  • Reorganize dev tools under their own composer namespace (check-style begins style:check, and fix-style begins style:fix)
  • #197 : Faster process linter
  • rename BOX config file to box.json.dist
  • Dockerfile bump default PHP version from 8.2 to 8.3 (to produce better perf)

Removed

  • drop support of PHPUnit 9
  • drop support of PHP 8.0
  • setApplicationVersion and setConfigResolver methods were removed from Overtrue\PHPLint\Output\ConsoleOutputInterface as there are no more required

Full Changelog: 9.0.6...9.1.0

9.0.6

9.0.6 - 2023-12-02

Fixed

  • #196 : Better Symfony 7 support

Full Changelog: 9.0.5...9.0.6

9.0.5

9.0.5 - 2023-12-01

This version is compatible PHP 8.0, 8.1, 8.2 and 8.3

CAUTION Next minor release 9.1 will drop support to PHP 8.0

Changed

  • Upgrade Phive installation documentation
  • Migrate PHPUnit configuration file to 10.4 format
  • Raise PHPUnit 9 constraint to latest v9 minor release
  • PR #195 : Add Symfony 7 support (thanks to @olegpro)

Fixed

  • PR #194 : Fix link to Configuration in console.md (thanks to @hNczy)
  • #193 : PHP CS Fixer deprecated rules

Full Changelog: 9.0.4...9.0.5

9.0.4

9.0.4 - 2023-02-23

Added

  • PHPUnit 10 support

Changed

  • ConsoleOutput is no more final to be able to customize it
  • LinterOutput implement Countable interface
  • Finder implement JsonSerializable interface

Fixed

  • #182 : Docker usage may raise a permission denied
  • #183 : Error is unintuitive when there are no files to lint
  • #185 : Analyse multiple path at same time did not work with console command
  • #187 : Improve log options implementation

Full Changelog: 9.0.3...9.0.4

9.0.3

9.0.3 - 2023-02-14

Fixed

  • #178 : "no configuration file is found" message without --no-configuration flag
  • #175 : PHAR version not available since release 9.0.0

Full Changelog: 9.0.2...9.0.3

9.0.2

9.0.2 - 2023-02-13

Fixed

  • #176 : Enhance Cache support for Windows platform (thanks @Knallcharge for reporting)

Full Changelog: 9.0.1...9.0.2

9.0.1

9.0.1 - 2023-02-13

Changed

  • configure Release Workflow to run manually

Fixed

  • #175 : Release Workflow was not able to build a PHAR with manifest distribution

Full Changelog: 9.0.0...9.0.1

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
robertmarney/lara-hierarchial-collections
simonschaufi/rule-doc-generator
emissaoja/emissaoja
blackbricksoftware/gravityforms-civicrm-form-processor
al-rahabi/fancy-crud
jinas/dhivatar-component
mltstephane/laravel-quality
bernskiold/laravel-talentlms
bernskioldmedia/laravel-form-architect
youbar/easy-crud
c-point-labs/laravel-hostyourai
dbravoan/dbcms-admin-theme-dbcms
dbravoan/dbcms-theme-db-cyber
dbravoan/dbcms-blocks-basic
dbravoan/dbcms-module-content-audit
dbravoan/dbcms-module-ai-assistant
paygate-to/paygate-php
padosoft/askmydocs-connector-base
defstudio/supercharged-carbon
bernskioldmedia/laravel-matomo