github overtrue/phplint 9.8.0

3 hours ago

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

Don't miss a new phplint release

NewReleases is sending notifications on new releases.